Mercurial > hg
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 |