Mercurial > hg
changeset 39191:5517d62c1bcc
revlog: fix pure version of _partialmatch() to include nullid
Before this patch, test-issue842.t and a few more tests fail when they
try to refer to the null revision by using a "000.." prefix of it (or
because they use the "shortest" template function which internally
does that).
This should have been part of my a3dacabd476b (index: don't allow
index[len(index)] to mean nullid, 2018-07-20), but I had forgotten to
update another part of the pure code there, so it didn't fail until
a1f934573c0b (parsers: adjust pure-python version to mimic
a3dacabd476b, 2018-08-09) and 65d5de1169dd (revlog: fix pure nodemap
to not access missing index entry, 2018-08-17) fixed the other things
I had missed.
Differential Revision: https://phab.mercurial-scm.org/D4332
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Sat, 18 Aug 2018 23:17:06 -0700 |
parents | 68b6383a840a |
children | dbc5ead9f40f |
files | mercurial/revlog.py |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revlog.py Sat Aug 18 15:15:04 2018 -0400 +++ b/mercurial/revlog.py Sat Aug 18 23:17:06 2018 -0700 @@ -27,6 +27,7 @@ from .node import ( bin, hex, + nullhex, nullid, nullrev, wdirfilenodeids, @@ -1853,6 +1854,8 @@ nl = [e[7] for e in self.index if e[7].startswith(prefix)] nl = [n for n in nl if hex(n).startswith(id) and self.hasnode(n)] + if nullhex.startswith(id): + nl.append(nullid) if len(nl) > 0: if len(nl) == 1 and not maybewdir: self._pcache[id] = nl[0]