diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py --- a/hgext/largefiles/lfutil.py +++ b/hgext/largefiles/lfutil.py @@ -222,6 +222,16 @@ def copytostore(repo, rev, file, uploade return copytostoreabsolute(repo, repo.wjoin(file), hash) +def copyalltostore(repo, node): + '''Copy all largefiles in a given revision to the store''' + + ctx = repo[node] + for filename in ctx.files(): + if isstandin(filename) and filename in ctx.manifest(): + realfile = splitstandin(filename) + copytostore(repo, ctx.node(), realfile) + + def copytostoreabsolute(repo, file, hash): util.makedirs(os.path.dirname(storepath(repo, hash))) if inusercache(repo.ui, hash): diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py --- a/hgext/largefiles/reposetup.py +++ b/hgext/largefiles/reposetup.py @@ -256,12 +256,7 @@ def reposetup(ui, repo): # cache. def commitctx(self, *args, **kwargs): node = super(lfiles_repo, self).commitctx(*args, **kwargs) - ctx = self[node] - for filename in ctx.files(): - if lfutil.isstandin(filename) and filename in ctx.manifest(): - realfile = lfutil.splitstandin(filename) - lfutil.copytostore(self, ctx.node(), realfile) - + lfutil.copyalltostore(self, node) return node # Before commit, largefile standins have not had their