diff tests/test-command-template.t @ 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 75c13343cf38
children 814151cd8c4a
line wrap: on
line diff
--- a/tests/test-command-template.t	Fri Apr 13 10:36:03 2018 -0700
+++ b/tests/test-command-template.t	Sat Apr 14 00:13:08 2018 -0700
@@ -3900,6 +3900,21 @@
   $ hg log -r 'wdir()' -T '{node|shortest}\n'
   ffff
 
+  $ hg log --template '{shortest("f")}\n' -l1
+  f
+
+  $ hg log --template '{shortest("0123456789012345678901234567890123456789")}\n' -l1
+  0123456789012345678901234567890123456789
+
+  $ hg log --template '{shortest("01234567890123456789012345678901234567890123456789")}\n' -l1
+  01234567890123456789012345678901234567890123456789
+
+  $ hg log --template '{shortest("not a hex string")}\n' -l1
+  not a hex string
+
+  $ hg log --template '{shortest("not a hex string, but it'\''s 40 bytes long")}\n' -l1
+  not a hex string, but it's 40 bytes long
+
   $ cd ..
 
 Test shortest(node) with the repo having short hash collision: