similar: use progress helper
authorMartin von Zweigbergk <martinvonz@google.com>
Sat, 16 Jun 2018 00:25:13 -0700
changeset 38348 cd196be26cb7
parent 38347 89db59e5cf3e
child 38349 e59eaf51cc0d
similar: use progress helper Note that a functional change here is that we now show the progress position *before* we start working on the item. This is consistent with how we do it elsewhere. Differential Revision: https://phab.mercurial-scm.org/D3768
mercurial/similar.py
tests/test-subrepo-deep-nested-change.t
--- a/mercurial/similar.py	Sat Jun 16 00:03:23 2018 -0700
+++ b/mercurial/similar.py	Sat Jun 16 00:25:13 2018 -0700
@@ -18,14 +18,14 @@
     Takes a list of new filectxs and a list of removed filectxs, and yields
     (before, after) tuples of exact matches.
     '''
-    numfiles = len(added) + len(removed)
-
     # Build table of removed files: {hash(fctx.data()): [fctx, ...]}.
     # We use hash() to discard fctx.data() from memory.
     hashes = {}
-    for i, fctx in enumerate(removed):
-        repo.ui.progress(_('searching for exact renames'), i, total=numfiles,
-                         unit=_('files'))
+    progress = repo.ui.makeprogress(_('searching for exact renames'),
+                                    total=(len(added) + len(removed)),
+                                    unit=_('files'))
+    for fctx in removed:
+        progress.increment()
         h = hash(fctx.data())
         if h not in hashes:
             hashes[h] = [fctx]
@@ -33,9 +33,8 @@
             hashes[h].append(fctx)
 
     # For each added file, see if it corresponds to a removed file.
-    for i, fctx in enumerate(added):
-        repo.ui.progress(_('searching for exact renames'), i + len(removed),
-                total=numfiles, unit=_('files'))
+    for fctx in added:
+        progress.increment()
         adata = fctx.data()
         h = hash(adata)
         for rfctx in hashes.get(h, []):
@@ -45,7 +44,7 @@
                 break
 
     # Done
-    repo.ui.progress(_('searching for exact renames'), None)
+    progress.update(None)
 
 def _ctxdata(fctx):
     # lazily load text
--- a/tests/test-subrepo-deep-nested-change.t	Sat Jun 16 00:03:23 2018 -0700
+++ b/tests/test-subrepo-deep-nested-change.t	Sat Jun 16 00:25:13 2018 -0700
@@ -379,7 +379,7 @@
   $ touch bar/abc
   $ hg addremove -S ..
   \r (no-eol) (esc)
-  searching for exact renames [                         ] 0/1\r (no-eol) (esc)
+  searching for exact renames [========================>] 1/1\r (no-eol) (esc)
                                                               \r (no-eol) (esc)
   adding ../sub1/sub2/folder/test.txt
   removing ../sub1/sub2/test.txt