diff hgext/show.py @ 37709:7b2955624777

scmutil: make shortesthexnodeidprefix() take a full binary nodeid The shortest() template function depended on the behavior of revlog._partialmatch() for these types of inputs: * non-hex strings * ambiguous strings * too long strings revlog._partialmatch() seems to return the input unchanged in these cases, but we shouldn't depend on such a low-level function to match the behavior we want in the user-facing template function. Instead, let's handle these cases in the template function and always pass a binary nodeid to _partialmatch(). Differential Revision: https://phab.mercurial-scm.org/D3371
author Martin von Zweigbergk <martinvonz@google.com>
date Sat, 14 Apr 2018 00:13:08 -0700
parents 8e8541610d85
children c303d65d2e34
line wrap: on
line diff
--- a/hgext/show.py	Fri Apr 13 10:36:03 2018 -0700
+++ b/hgext/show.py	Sat Apr 14 00:13:08 2018 -0700
@@ -29,7 +29,6 @@
 
 from mercurial.i18n import _
 from mercurial.node import (
-    hex,
     nullrev,
 )
 from mercurial import (
@@ -448,8 +447,8 @@
     if not revs:
         return minlen
     cl = repo.changelog
-    return max(len(scmutil.shortesthexnodeidprefix(repo, hex(cl.node(r)),
-                                                   minlen)) for r in revs)
+    return max(len(scmutil.shortesthexnodeidprefix(repo, cl.node(r), minlen))
+               for r in revs)
 
 # Adjust the docstring of the show command so it shows all registered views.
 # This is a bit hacky because it runs at the end of module load. When moved