# HG changeset patch # User Pierre-Yves David # Date 1572736512 -3600 # Node ID dcf9826c8d8c75633471c61b7fce666688c6efbf # Parent 6e3e3e5446ba054a287c62a791b1958f613c79eb revlog: move nodemap update within the index code Since the nodemap data now live in the index, it should be the index responsibility to ensure the data are up to date. This work is part of a refactoring to unify the revlog index and the nodemap. This unification prepare the use of a persistent nodemap. Differential Revision: https://phab.mercurial-scm.org/D7319 diff -r 6e3e3e5446ba -r dcf9826c8d8c mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py Sat Nov 02 15:46:47 2019 +0100 +++ b/mercurial/pure/parsers.py Sun Nov 03 00:15:12 2019 +0100 @@ -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 -r 6e3e3e5446ba -r dcf9826c8d8c mercurial/revlog.py --- a/mercurial/revlog.py Sat Nov 02 15:46:47 2019 +0100 +++ b/mercurial/revlog.py Sun Nov 03 00:15:12 2019 +0100 @@ -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.