diff mercurial/merge.py @ 25754:19cc443aac34

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).
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Wed, 08 Jul 2015 17:01:09 +0900
parents 328739ea70c3
children bf9ea348b487
line wrap: on
line diff
--- 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