--- a/mercurial/branchmap.py Wed Mar 10 18:09:21 2021 +0100
+++ b/mercurial/branchmap.py Wed Jan 13 16:14:58 2021 +0100
@@ -97,7 +97,7 @@
revs.extend(r for r in extrarevs if r <= bcache.tiprev)
else:
# nothing to fall back on, start empty.
- bcache = branchcache()
+ bcache = branchcache(repo)
revs.extend(cl.revs(start=bcache.tiprev + 1))
if revs:
@@ -129,6 +129,7 @@
if rbheads:
rtiprev = max((int(clrev(node)) for node in rbheads))
cache = branchcache(
+ repo,
remotebranchmap,
repo[rtiprev].node(),
rtiprev,
@@ -184,6 +185,7 @@
def __init__(
self,
+ repo,
entries=(),
tipnode=nullid,
tiprev=nullrev,
@@ -195,6 +197,7 @@
"""hasnode is a function which can be used to verify whether changelog
has a given node or not. If it's not provided, we assume that every node
we have exists in changelog"""
+ self._repo = repo
self.tipnode = tipnode
self.tiprev = tiprev
self.filteredhash = filteredhash
@@ -280,6 +283,7 @@
if len(cachekey) > 2:
filteredhash = bin(cachekey[2])
bcache = cls(
+ repo,
tipnode=last,
tiprev=lrev,
filteredhash=filteredhash,
@@ -388,6 +392,7 @@
def copy(self):
"""return an deep copy of the branchcache object"""
return type(self)(
+ self._repo,
self._entries,
self.tipnode,
self.tiprev,