--- a/mercurial/branchmap.py Thu Nov 15 11:11:38 2018 +0100
+++ b/mercurial/branchmap.py Wed Nov 21 17:17:26 2018 +0300
@@ -397,15 +397,18 @@
self._names = []
self._rbcnamescount = len(self._names) # number of names read at
# _rbcsnameslen
- self._namesreverse = dict((b, r) for r, b in enumerate(self._names))
def _clear(self):
self._rbcsnameslen = 0
del self._names[:]
self._rbcnamescount = 0
- self._namesreverse.clear()
self._rbcrevslen = len(self._repo.changelog)
self._rbcrevs = bytearray(self._rbcrevslen * _rbcrecsize)
+ util.clearcachedproperty(self, '_namesreverse')
+
+ @util.propertycache
+ def _namesreverse(self):
+ return dict((b, r) for r, b in enumerate(self._names))
def branchinfo(self, rev):
"""Return branch name and close flag for rev, using and updating