mercurial/merge.py
changeset 38345 bec1212eceaa
parent 38045 18e6ea9ba81d
child 38373 ef692614e601
--- a/mercurial/merge.py	Sun Jun 17 18:01:49 2018 +0900
+++ b/mercurial/merge.py	Fri Jun 15 22:37:01 2018 -0700
@@ -1584,10 +1584,6 @@
         if f1 != f and move:
             moves.append(f1)
 
-    _updating = _('updating')
-    _files = _('files')
-    progress = repo.ui.progress
-
     # remove renamed files after safely stored
     for f in moves:
         if wctx[f].lexists():
@@ -1597,7 +1593,8 @@
 
     numupdates = sum(len(l) for m, l in actions.items()
                      if m != ACTION_KEEP)
-    z = 0
+    progress = repo.ui.makeprogress(_('updating'), unit=_('files'),
+                                    total=numupdates)
 
     if [a for a in actions[ACTION_REMOVE] if a[0] == '.hgsubstate']:
         subrepoutil.submerge(repo, wctx, mctx, wctx, overwrite, labels)
@@ -1614,8 +1611,7 @@
             s(_("the remote file has been renamed to %s\n") % f1)
         s(_("resolve manually then use 'hg resolve --mark %s'\n") % f)
         ms.addpath(f, f1, fo)
-        z += 1
-        progress(_updating, z, item=f, total=numupdates, unit=_files)
+        progress.increment(item=f)
 
     # When merging in-memory, we can't support worker processes, so set the
     # per-item cost at 0 in that case.
@@ -1625,8 +1621,7 @@
     prog = worker.worker(repo.ui, cost, batchremove, (repo, wctx),
                          actions[ACTION_REMOVE])
     for i, item in prog:
-        z += i
-        progress(_updating, z, item=item, total=numupdates, unit=_files)
+        progress.increment(step=i, item=item)
     removed = len(actions[ACTION_REMOVE])
 
     # resolve path conflicts (must come before getting)
@@ -1638,15 +1633,13 @@
             wctx[f].audit()
             wctx[f].write(wctx.filectx(f0).data(), wctx.filectx(f0).flags())
             wctx[f0].remove()
-        z += 1
-        progress(_updating, z, item=f, total=numupdates, unit=_files)
+        progress.increment(item=f)
 
     # get in parallel
     prog = worker.worker(repo.ui, cost, batchget, (repo, mctx, wctx),
                          actions[ACTION_GET])
     for i, item in prog:
-        z += i
-        progress(_updating, z, item=item, total=numupdates, unit=_files)
+        progress.increment(step=i, item=item)
     updated = len(actions[ACTION_GET])
 
     if [a for a in actions[ACTION_GET] if a[0] == '.hgsubstate']:
@@ -1655,20 +1648,17 @@
     # forget (manifest only, just log it) (must come first)
     for f, args, msg in actions[ACTION_FORGET]:
         repo.ui.debug(" %s: %s -> f\n" % (f, msg))
-        z += 1
-        progress(_updating, z, item=f, total=numupdates, unit=_files)
+        progress.increment(item=f)
 
     # re-add (manifest only, just log it)
     for f, args, msg in actions[ACTION_ADD]:
         repo.ui.debug(" %s: %s -> a\n" % (f, msg))
-        z += 1
-        progress(_updating, z, item=f, total=numupdates, unit=_files)
+        progress.increment(item=f)
 
     # re-add/mark as modified (manifest only, just log it)
     for f, args, msg in actions[ACTION_ADD_MODIFIED]:
         repo.ui.debug(" %s: %s -> am\n" % (f, msg))
-        z += 1
-        progress(_updating, z, item=f, total=numupdates, unit=_files)
+        progress.increment(item=f)
 
     # keep (noop, just log it)
     for f, args, msg in actions[ACTION_KEEP]:
@@ -1678,8 +1668,7 @@
     # directory rename, move local
     for f, args, msg in actions[ACTION_DIR_RENAME_MOVE_LOCAL]:
         repo.ui.debug(" %s: %s -> dm\n" % (f, msg))
-        z += 1
-        progress(_updating, z, item=f, total=numupdates, unit=_files)
+        progress.increment(item=f)
         f0, flags = args
         repo.ui.note(_("moving %s to %s\n") % (f0, f))
         wctx[f].audit()
@@ -1690,8 +1679,7 @@
     # local directory rename, get
     for f, args, msg in actions[ACTION_LOCAL_DIR_RENAME_GET]:
         repo.ui.debug(" %s: %s -> dg\n" % (f, msg))
-        z += 1
-        progress(_updating, z, item=f, total=numupdates, unit=_files)
+        progress.increment(item=f)
         f0, flags = args
         repo.ui.note(_("getting %s to %s\n") % (f0, f))
         wctx[f].write(mctx.filectx(f0).data(), flags)
@@ -1700,8 +1688,7 @@
     # exec
     for f, args, msg in actions[ACTION_EXEC]:
         repo.ui.debug(" %s: %s -> e\n" % (f, msg))
-        z += 1
-        progress(_updating, z, item=f, total=numupdates, unit=_files)
+        progress.increment(item=f)
         flags, = args
         wctx[f].audit()
         wctx[f].setflags('l' in flags, 'x' in flags)
@@ -1736,8 +1723,7 @@
         tocomplete = []
         for f, args, msg in mergeactions:
             repo.ui.debug(" %s: %s -> m (premerge)\n" % (f, msg))
-            z += 1
-            progress(_updating, z, item=f, total=numupdates, unit=_files)
+            progress.increment(item=f)
             if f == '.hgsubstate': # subrepo states need updating
                 subrepoutil.submerge(repo, wctx, mctx, wctx.ancestor(mctx),
                                      overwrite, labels)
@@ -1751,8 +1737,7 @@
         # merge
         for f, args, msg in tocomplete:
             repo.ui.debug(" %s: %s -> m (merge)\n" % (f, msg))
-            z += 1
-            progress(_updating, z, item=f, total=numupdates, unit=_files)
+            progress.increment(item=f, total=numupdates)
             ms.resolve(f, wctx)
 
     finally:
@@ -1800,7 +1785,7 @@
         actions[ACTION_MERGE] = [a for a in actions[ACTION_MERGE]
                                  if a[0] in mfiles]
 
-    progress(_updating, None, total=numupdates, unit=_files)
+    progress.update(None)
     return updateresult(updated, merged, removed, unresolved)
 
 def recordupdates(repo, actions, branchmerge):