scmutil: extra utility to display a reasonable amount of nodes
authorBoris Feld <boris.feld@octobus.net>
Thu, 16 Nov 2017 03:52:38 +0100
changeset 35184 bc775b8cc020
parent 35183 9dadcb99cc17
child 35185 66ecde8a704d
scmutil: extra utility to display a reasonable amount of nodes Push have some logic to display a reasonable amount nodes. We extract it to an utility function to make it reusable.
mercurial/discovery.py
mercurial/scmutil.py
--- a/mercurial/discovery.py	Fri Oct 06 04:17:36 2017 +0530
+++ b/mercurial/discovery.py	Thu Nov 16 03:52:38 2017 +0100
@@ -21,6 +21,7 @@
     branchmap,
     error,
     phases,
+    scmutil,
     setdiscovery,
     treediscovery,
     util,
@@ -365,11 +366,8 @@
             if None in unsyncedheads:
                 # old remote, no heads data
                 heads = None
-            elif len(unsyncedheads) <= 4 or repo.ui.verbose:
-                heads = ' '.join(short(h) for h in unsyncedheads)
             else:
-                heads = (' '.join(short(h) for h in unsyncedheads[:4]) +
-                         ' ' + _("and %s others") % (len(unsyncedheads) - 4))
+                heads = scmutil.nodesummaries(repo, unsyncedheads)
             if heads is None:
                 repo.ui.status(_("remote has heads that are "
                                  "not known locally\n"))
--- a/mercurial/scmutil.py	Fri Oct 06 04:17:36 2017 +0530
+++ b/mercurial/scmutil.py	Thu Nov 16 03:52:38 2017 +0100
@@ -1280,6 +1280,12 @@
                 revrange = '%s:%s' % (minrev, maxrev)
             repo.ui.status(_('new changesets %s\n') % revrange)
 
+def nodesummaries(repo, nodes, maxnumnodes=4):
+    if len(nodes) <= maxnumnodes or repo.ui.verbose:
+        return ' '.join(short(h) for h in nodes)
+    first = ' '.join(short(h) for h in nodes[:maxnumnodes])
+    return _("%s and %s others") % (first, len(nodes) - maxnumnodes)
+
 def wrapconvertsink(sink):
     """Allow extensions to wrap the sink returned by convcmd.convertsink()
     before it is used, whether or not the convert extension was formally loaded.