hgext/largefiles/overrides.py
changeset 22285 85bded43cc80
parent 22284 72b378658cff
child 22286 3f3b9483e7ef
--- a/hgext/largefiles/overrides.py	Sun Aug 24 23:47:25 2014 +0900
+++ b/hgext/largefiles/overrides.py	Sun Aug 24 23:47:25 2014 +0900
@@ -12,7 +12,7 @@
 import copy
 
 from mercurial import hg, commands, util, cmdutil, scmutil, match as match_, \
-        archival, merge, pathutil, revset
+        archival, pathutil, revset
 from mercurial.i18n import _
 from mercurial.node import hex
 from hgext import rebase
@@ -1202,8 +1202,18 @@
         if before == after:
             return result # no need to restore standins
 
-        merge.update(repo, node='.', branchmerge=False, force=True,
-                     partial=lfutil.isstandin)
+        pctx = repo['.']
+        for f in repo.dirstate:
+            if lfutil.isstandin(f):
+                if repo.dirstate[f] == 'r':
+                    repo.wvfs.unlinkpath(f, ignoremissing=True)
+                elif f in pctx:
+                    fctx = pctx[f]
+                    repo.wwrite(f, fctx.data(), fctx.flags())
+                else:
+                    # content of standin is not so important in 'a',
+                    # 'm' or 'n' (coming from the 2nd parent) cases
+                    lfutil.writestandin(repo, f, '', False)
 
         lfdirstate = lfutil.openlfdirstate(ui, repo)
         orphans = set(lfdirstate)