Patchwork [2,of,7] largefiles: replace readstandin() by readasstandin()

login
register
mail settings
Submitter Katsunori FUJIWARA
Date March 31, 2017, 5:41 p.m.
Message ID <a99b27d2fdfb148aa44d.1490982107@speaknoevil>
Download mbox | patch
Permalink /patch/19874/
State Accepted
Headers show

Comments

Katsunori FUJIWARA - March 31, 2017, 5:41 p.m.
# HG changeset patch
# User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
# Date 1490981567 -32400
#      Sat Apr 01 02:32:47 2017 +0900
# Node ID a99b27d2fdfb148aa44d1fec88b6b7accadd8084
# Parent  340c76876899a57ded1f59fee4e2035f078895d7
largefiles: replace readstandin() by readasstandin()

These code paths already (or should, for efficiency at repetition)
know the target changectx and path of standin file.

Patch

diff --git a/hgext/largefiles/lfcommands.py b/hgext/largefiles/lfcommands.py
--- a/hgext/largefiles/lfcommands.py
+++ b/hgext/largefiles/lfcommands.py
@@ -474,7 +474,7 @@  def updatelfiles(ui, repo, filelist=None
                     shutil.copyfile(wvfs.join(rellfile),
                                     wvfs.join(rellfileorig))
                     wvfs.unlinkpath(relstandinorig)
-                expecthash = lfutil.readstandin(repo, lfile)
+                expecthash = lfutil.readasstandin(wctx[relstandin])
                 if expecthash != '':
                     if lfile not in wctx: # not switched to normal file
                         wvfs.unlinkpath(rellfile, ignoremissing=True)
diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py
--- a/hgext/largefiles/lfutil.py
+++ b/hgext/largefiles/lfutil.py
@@ -434,10 +434,11 @@  class storeprotonotcapable(Exception):
 def getstandinsstate(repo):
     standins = []
     matcher = getstandinmatcher(repo)
+    wctx = repo[None]
     for standin in repo.dirstate.walk(matcher, [], False, False):
         lfile = splitstandin(standin)
         try:
-            hash = readstandin(repo, lfile)
+            hash = readasstandin(wctx[standin])
         except IOError:
             hash = None
         standins.append((lfile, hash))
diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
--- a/hgext/largefiles/overrides.py
+++ b/hgext/largefiles/overrides.py
@@ -1357,7 +1357,7 @@  def overridecat(orig, ui, repo, file1, *
                     data = repo.wwritedata(f, data)
                 fp.write(data)
             else:
-                hash = lfutil.readstandin(repo, lf, ctx)
+                hash = lfutil.readasstandin(ctx[f])
                 if not lfutil.inusercache(repo.ui, hash):
                     store = storefactory.openstore(repo)
                     success, missing = store.get([(lf, hash)])
@@ -1409,7 +1409,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, pctx)):
+                lfhash == lfutil.readasstandin(pctx[standin])):
                 oldclean.add(lfile)
         for lfile in s.added:
             fstandin = lfutil.standin(lfile)