diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py +++ b/mercurial/pure/parsers.py @@ -62,6 +62,8 @@ return self._lgt + len(self._extra) def append(self, tup): + if 'nodemap' in vars(self): + self.nodemap[tup[7]] = len(self) self._extra.append(tup) def _check_index(self, i): diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -213,6 +213,10 @@ nodemap[n] = r return nodemap + def append(self, tup): + self.nodemap[tup[7]] = len(self) + super(revlogoldindex, self).append(tup) + def clearcaches(self): self.__dict__.pop('nodemap', None) @@ -2189,7 +2193,6 @@ node, ) self.index.append(e) - self.nodemap[node] = curr # Reset the pure node cache start lookup offset to account for new # revision.