comparison 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
comparison
equal deleted inserted replaced
37708:8e8541610d85 37709:7b2955624777
3898 [255] 3898 [255]
3899 3899
3900 $ hg log -r 'wdir()' -T '{node|shortest}\n' 3900 $ hg log -r 'wdir()' -T '{node|shortest}\n'
3901 ffff 3901 ffff
3902 3902
3903 $ hg log --template '{shortest("f")}\n' -l1
3904 f
3905
3906 $ hg log --template '{shortest("0123456789012345678901234567890123456789")}\n' -l1
3907 0123456789012345678901234567890123456789
3908
3909 $ hg log --template '{shortest("01234567890123456789012345678901234567890123456789")}\n' -l1
3910 01234567890123456789012345678901234567890123456789
3911
3912 $ hg log --template '{shortest("not a hex string")}\n' -l1
3913 not a hex string
3914
3915 $ hg log --template '{shortest("not a hex string, but it'\''s 40 bytes long")}\n' -l1
3916 not a hex string, but it's 40 bytes long
3917
3903 $ cd .. 3918 $ cd ..
3904 3919
3905 Test shortest(node) with the repo having short hash collision: 3920 Test shortest(node) with the repo having short hash collision:
3906 3921
3907 $ hg init hashcollision 3922 $ hg init hashcollision