# HG changeset patch # User Pierre-Yves David # Date 2019-11-02 23:15:12 # 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 --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 @@ class BaseIndexObject(object): 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 @@ class revlogoldindex(list): 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 @@ class revlog(object): node, ) self.index.append(e) - self.nodemap[node] = curr # Reset the pure node cache start lookup offset to account for new # revision.