diff -r fe03f522dda9 -r 19cc443aac34 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