merge: remove useless dirstate.normallookup() invocation in applyupdates()
authorFUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Wed, 08 Jul 2015 17:01:09 +0900
changeset 25754 19cc443aac34
parent 25753 fe03f522dda9
child 25755 72d395e399c1
merge: remove useless dirstate.normallookup() invocation in applyupdates() Explicit 'dirstate.normallookup()' invocation via 'dirtysubstate()' in 'applyupdates()' is useless now, because previous patch fixed the relevant issue by writing in-memory dirstate changes out at the end of dirty check. 'dirstate.normallookup()' invocation was introduced by 6becb9dbca25 to avoid occasional test failure. This is partial backout of it (added tests are still left).
mercurial/merge.py
--- a/mercurial/merge.py	Wed Jul 08 17:01:09 2015 +0900
+++ b/mercurial/merge.py	Wed Jul 08 17:01:09 2015 +0900
@@ -741,15 +741,7 @@
 
     numupdates = sum(len(l) for m, l in actions.items() if m != 'k')
 
-    def dirtysubstate():
-        # mark '.hgsubstate' as possibly dirty forcibly, because
-        # modified '.hgsubstate' is misunderstood as clean,
-        # when both st_size/st_mtime of '.hgsubstate' aren't changed,
-        # even if "submerge" fails and '.hgsubstate' is inconsistent
-        repo.dirstate.normallookup('.hgsubstate')
-
     if [a for a in actions['r'] if a[0] == '.hgsubstate']:
-        dirtysubstate()
         subrepo.submerge(repo, wctx, mctx, wctx, overwrite)
 
     # remove in parallel (must come first)
@@ -768,7 +760,6 @@
     updated = len(actions['g'])
 
     if [a for a in actions['g'] if a[0] == '.hgsubstate']:
-        dirtysubstate()
         subrepo.submerge(repo, wctx, mctx, wctx, overwrite)
 
     # forget (manifest only, just log it) (must come first)
@@ -794,7 +785,6 @@
         z += 1
         progress(_updating, z, item=f, total=numupdates, unit=_files)
         if f == '.hgsubstate': # subrepo states need updating
-            dirtysubstate()
             subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx),
                              overwrite)
             continue