Mercurial > hg
changeset 13265:04b302ce2781
revlog: always add the magic nullid/nullrev entry in parseindex
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Sat, 15 Jan 2011 13:02:19 +0100 |
parents | 8439526fb407 |
children | a5db81b5d3e9 |
files | mercurial/revlog.py |
diffstat | 1 files changed, 12 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revlog.py Sat Jan 15 15:04:58 2011 +0100 +++ b/mercurial/revlog.py Sat Jan 15 13:02:19 2011 +0100 @@ -143,6 +143,9 @@ nodemap[e[6]] = n n += 1 + # add the magic null revision at -1 + index.append((0, 0, 0, -1, -1, -1, -1, nullid)) + return index, nodemap, None def packentry(self, entry, node, version, rev): @@ -262,20 +265,15 @@ self._io = revlogio() if self.version == REVLOGV0: self._io = revlogoldio() - if i: - try: - d = self._io.parseindex(i, self._inline) - except (ValueError, IndexError): - raise RevlogError(_("index %s is corrupted") % (self.indexfile)) - self.index, n, self._chunkcache = d - if n: - self.nodemap = n - if not self._chunkcache: - self._chunkclear() - - # add the magic null revision at -1 (if it hasn't been done already) - if self.index == [] or self.index[-1][7] != nullid: - self.index.append((0, 0, 0, -1, -1, -1, -1, nullid)) + try: + d = self._io.parseindex(i, self._inline) + except (ValueError, IndexError): + raise RevlogError(_("index %s is corrupted") % (self.indexfile)) + self.index, n, self._chunkcache = d + if n: + self.nodemap = n + if not self._chunkcache: + self._chunkclear() @util.propertycache def nodemap(self):