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.
--- 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.