[PATCH 3 of 8 V2] merge: remove useless dirstate.normallookup() invocation in applyupdates()

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Wed Jul 8 03:08:39 CDT 2015


# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1436342469 -32400
#      Wed Jul 08 17:01:09 2015 +0900
# Node ID 42762df2c45ee39299e1d5b359e3d70b7af41c5c
# Parent  7beb0027e26c15c9a881ef629cdc7599c8ad26d8
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).

diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -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


More information about the Mercurial-devel mailing list