[PATCH 5 of 7 mergedriver] merge.applyupdates: use counters from mergestate
Siddharth Agarwal
sid0 at fb.com
Fri Nov 20 19:04:00 CST 2015
# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1448066259 28800
# Fri Nov 20 16:37:39 2015 -0800
# Node ID 9f9a937bb5af83115f1c3349fd2058bb82fe4486
# Parent 45f8add0d3082f025c7f3e67b1e28cd78680e72f
# Available At http://42.netv6.net/sid0-wip/hg/
# hg pull http://42.netv6.net/sid0-wip/hg/ -r 9f9a937bb5af
merge.applyupdates: use counters from mergestate
This eliminates a whole bunch of duplicate code and allows us to update the
removed count for change/delete conflicts where the delete action was chosen.
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -944,7 +944,7 @@ def applyupdates(repo, actions, wctx, mc
describes how many files were affected by the update.
"""
- updated, merged, removed, unresolved = 0, 0, 0, 0
+ updated, merged, removed = 0, 0, 0
ms = mergestate.clean(repo, wctx.p1().node(), mctx.node())
moves = []
for m, l in actions.items():
@@ -1084,15 +1084,7 @@ def applyupdates(repo, actions, wctx, mc
continue
audit(f)
complete, r = ms.preresolve(f, wctx, labels=labels)
- if complete:
- if r is not None and r > 0:
- unresolved += 1
- else:
- if r is None:
- updated += 1
- else:
- merged += 1
- else:
+ if not complete:
numupdates += 1
tocomplete.append((f, args, msg))
@@ -1101,17 +1093,12 @@ def applyupdates(repo, actions, wctx, mc
repo.ui.debug(" %s: %s -> m (merge)\n" % (f, msg))
z += 1
progress(_updating, z, item=f, total=numupdates, unit=_files)
- r = ms.resolve(f, wctx, labels=labels)
- if r is not None and r > 0:
- unresolved += 1
- else:
- if r is None:
- updated += 1
- else:
- merged += 1
+ ms.resolve(f, wctx, labels=labels)
ms.commit()
+ unresolved = ms.unresolvedcount()
+
if usemergedriver and not unresolved and ms.mdstate() != 's':
if not driverconclude(repo, ms, wctx, labels=labels):
# XXX setting unresolved to at least 1 is a hack to make sure we
@@ -1120,6 +1107,10 @@ def applyupdates(repo, actions, wctx, mc
ms.commit()
+ msupdated, msmerged, msremoved = ms.counts()
+ updated += msupdated
+ merged += msmerged
+ removed += msremoved
progress(_updating, None, total=numupdates, unit=_files)
return updated, merged, removed, unresolved
More information about the Mercurial-devel
mailing list