diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py --- a/hgext/largefiles/lfutil.py +++ b/hgext/largefiles/lfutil.py @@ -245,9 +245,9 @@ def copyfromcache(repo, hash, filename): return False return True -def copytostore(repo, rev, file, uploaded=False): +def copytostore(repo, revorctx, file, uploaded=False): wvfs = repo.wvfs - hash = readstandin(repo, file, rev) + hash = readstandin(repo, file, revorctx) if instore(repo, hash): return if wvfs.exists(file): @@ -263,7 +263,7 @@ def copyalltostore(repo, node): for filename in ctx.files(): realfile = splitstandin(filename) if realfile is not None and filename in ctx.manifest(): - copytostore(repo, ctx.node(), realfile) + copytostore(repo, ctx, realfile) def copytostoreabsolute(repo, file, hash): if inusercache(repo.ui, hash): @@ -485,6 +485,11 @@ def markcommitted(orig, ctx, node): lfdirstate.write() # As part of committing, copy all of the largefiles into the cache. + # + # Using "node" instead of "ctx" implies additional "repo[node]" + # lookup while copyalltostore(), but can omit redundant check for + # files comming from the 2nd parent, which should exist in store + # at merging. copyalltostore(repo, node) def getlfilestoupdate(oldstandins, newstandins): diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py +++ b/hgext/largefiles/overrides.py @@ -1354,7 +1354,7 @@ def overridecat(orig, ui, repo, file1, * data = repo.wwritedata(f, data) fp.write(data) else: - hash = lfutil.readstandin(repo, lf, ctx.rev()) + hash = lfutil.readstandin(repo, lf, ctx) if not lfutil.inusercache(repo.ui, hash): store = storefactory.openstore(repo) success, missing = store.get([(lf, hash)]) @@ -1405,7 +1405,7 @@ def mergeupdate(orig, repo, node, branch lfutil.writestandin(repo, standin, lfhash, lfutil.getexecutable(lfileabs)) if (standin in pctx and - lfhash == lfutil.readstandin(repo, lfile, '.')): + lfhash == lfutil.readstandin(repo, lfile, pctx)): oldclean.add(lfile) for lfile in s.added: lfutil.updatestandin(repo, lfutil.standin(lfile))