Mercurial > public > mercurial-scm > hg-stable
diff mercurial/scmutil.py @ 40341:d916ed3ca951
revisions: when using prefixhexnode, ensure we prefix "0"
Previously, if using `experimental.revisions.disambiguatewithin` (and it didn't
include rev0), and '0' was the shortest identifier in that disambiguation set,
we printed it as the shortest *without* a prefix. This was because we had logic
to determine "if the prefix is a pure integer, but starts with 0, we don't need
to prefix with 'x': 01 is not a synonym for revision #1", but didn't handle the
case where prefix == 0 (which is a pure integer, and starts with 0... but it
*is* "rev0").
Differential Revision: https://phab.mercurial-scm.org/D5113
author | Kyle Lippincott <spectral@google.com> |
---|---|
date | Tue, 16 Oct 2018 07:21:00 -0700 |
parents | c554dc0cc16e |
children | 824b687ff6af |
line wrap: on
line diff
--- a/mercurial/scmutil.py Wed Oct 03 16:45:24 2018 +0300 +++ b/mercurial/scmutil.py Tue Oct 16 07:21:00 2018 -0700 @@ -477,8 +477,9 @@ i = int(prefix) # if we are a pure int, then starting with zero will not be # confused as a rev; or, obviously, if the int is larger - # than the value of the tip rev - if prefix[0:1] == b'0' or i >= len(repo): + # than the value of the tip rev. We still need to disambiguate if + # prefix == '0', since that *is* a valid revnum. + if (prefix != b'0' and prefix[0:1] == b'0') or i >= len(repo): return False return True except ValueError: