narrow: add progress-reporting when looking for local changes in `hg tracked`
authorMartin von Zweigbergk <martinvonz@google.com>
Tue, 20 Apr 2021 10:24:03 -0700
changeset 47025 124fe94016c0
parent 47024 8fcc0a829f3d
child 47026 20eba5cef2e0
narrow: add progress-reporting when looking for local changes in `hg tracked` Looking for local changes (changes not on the given remote) can take a long time, so we should have progress-reporting for it. Differential Revision: https://phab.mercurial-scm.org/D10501
hgext/narrow/narrowcommands.py
--- a/hgext/narrow/narrowcommands.py	Fri Apr 16 16:21:26 2021 -0700
+++ b/hgext/narrow/narrowcommands.py	Tue Apr 20 10:24:03 2021 -0700
@@ -227,10 +227,17 @@
     unfi = repo.unfiltered()
     outgoing = discovery.findcommonoutgoing(unfi, remote, commoninc=commoninc)
     ui.status(_(b'looking for local changes to affected paths\n'))
+    progress = ui.makeprogress(
+        topic=_(b'changesets'),
+        unit=_(b'changesets'),
+        total=len(outgoing.missing) + len(outgoing.excluded),
+    )
     localnodes = []
-    for n in itertools.chain(outgoing.missing, outgoing.excluded):
-        if any(oldmatch(f) and not newmatch(f) for f in unfi[n].files()):
-            localnodes.append(n)
+    with progress:
+        for n in itertools.chain(outgoing.missing, outgoing.excluded):
+            progress.increment()
+            if any(oldmatch(f) and not newmatch(f) for f in unfi[n].files()):
+                localnodes.append(n)
     revstostrip = unfi.revs(b'descendants(%ln)', localnodes)
     hiddenrevs = repoview.filterrevs(repo, b'visible')
     visibletostrip = list(