D5291: branchmap: build the revbranchcache._namesreverse() only when required

Yuya Nishihara yuya at tcha.org
Wed Nov 21 14:38:24 UTC 2018


> +        if self._namesreverse is None:
> +            self._namesreverse = dict((b, r) for r, b in enumerate(self._names))
>          if b in self._namesreverse:
>              branchidx = self._namesreverse[b]
>          else:
> @@ -467,6 +469,8 @@
>  
>      def setdata(self, branch, rev, node, close):
>          """add new data information to the cache"""
> +        if self._namesreverse is None:
> +            self._namesreverse = dict((b, r) for r, b in enumerate(self._names))

Maybe _namesreverse can be a propertycache, instead of duplicating it.
`del self.__dict__[r'...']` can be used to discard the cache.



More information about the Mercurial-devel mailing list