##// END OF EJS Templates
revlog: move the_revisioncache on the inner object...
marmoute -
r51989:8ec2de9c default
parent child Browse files
Show More
@@ -147,8 +147,11 b' class bundlerevlog(revlog.revlog):'
147 147 iterrev = rev
148 148 # reconstruct the revision if it is from a changegroup
149 149 while iterrev > self.repotiprev:
150 if self._revisioncache and self._revisioncache[1] == iterrev:
151 rawtext = self._revisioncache[2]
150 if (
151 self._inner._revisioncache
152 and self._inner._revisioncache[1] == iterrev
153 ):
154 rawtext = self._inner._revisioncache[2]
152 155 break
153 156 chain.append(iterrev)
154 157 iterrev = self.index[iterrev][3]
@@ -390,6 +390,8 b' class _InnerRevlog:'
390 390
391 391 # revlog header -> revlog compressor
392 392 self._decompressors = {}
393 # 3-tuple of (node, rev, text) for a raw revision.
394 self._revisioncache = None
393 395
394 396 @property
395 397 def index_file(self):
@@ -1023,8 +1025,6 b' class revlog:'
1023 1025 self.delta_config = DeltaConfig()
1024 1026 self.delta_config.upper_bound_comp = upperboundcomp
1025 1027
1026 # 3-tuple of (node, rev, text) for a raw revision.
1027 self._revisioncache = None
1028 1028 # Maps rev to chain base rev.
1029 1029 self._chainbasecache = util.lrucachedict(100)
1030 1030
@@ -1665,7 +1665,7 b' class revlog:'
1665 1665
1666 1666 def clearcaches(self):
1667 1667 """Clear in-memory caches"""
1668 self._revisioncache = None
1668 self._inner._revisioncache = None
1669 1669 self._chainbasecache.clear()
1670 1670 self._inner._segmentfile.clear_cache()
1671 1671 self._inner._segmentfile_sidedata.clear_cache()
@@ -2571,7 +2571,7 b' class revlog:'
2571 2571 if validatehash:
2572 2572 self.checkhash(text, node, rev=rev)
2573 2573 if not validated:
2574 self._revisioncache = (node, rev, rawtext)
2574 self._inner._revisioncache = (node, rev, rawtext)
2575 2575
2576 2576 return text
2577 2577
@@ -2588,21 +2588,21 b' class revlog:'
2588 2588
2589 2589 # Check if we have the entry in cache
2590 2590 # The cache entry looks like (node, rev, rawtext)
2591 if self._revisioncache:
2592 if self._revisioncache[0] == node:
2593 return (rev, self._revisioncache[2], True)
2594 cachedrev = self._revisioncache[1]
2591 if self._inner._revisioncache:
2592 if self._inner._revisioncache[0] == node:
2593 return (rev, self._inner._revisioncache[2], True)
2594 cachedrev = self._inner._revisioncache[1]
2595 2595
2596 2596 if rev is None:
2597 2597 rev = self.rev(node)
2598 2598
2599 2599 chain, stopped = self._inner._deltachain(rev, stoprev=cachedrev)
2600 2600 if stopped:
2601 basetext = self._revisioncache[2]
2601 basetext = self._inner._revisioncache[2]
2602 2602
2603 2603 # drop cache to save memory, the caller is expected to
2604 # update self._revisioncache after validating the text
2605 self._revisioncache = None
2604 # update self._inner._revisioncache after validating the text
2605 self._inner._revisioncache = None
2606 2606
2607 2607 targetsize = None
2608 2608 rawsize = self.index[rev][2]
@@ -2684,8 +2684,11 b' class revlog:'
2684 2684 # revision data is accessed. But this case should be rare and
2685 2685 # it is extra work to teach the cache about the hash
2686 2686 # verification state.
2687 if self._revisioncache and self._revisioncache[0] == node:
2688 self._revisioncache = None
2687 if (
2688 self._inner._revisioncache
2689 and self._inner._revisioncache[0] == node
2690 ):
2691 self._inner._revisioncache = None
2689 2692
2690 2693 revornode = rev
2691 2694 if revornode is None:
@@ -3149,7 +3152,7 b' class revlog:'
3149 3152 rawtext = deltacomputer.buildtext(revinfo)
3150 3153
3151 3154 if type(rawtext) == bytes: # only accept immutable objects
3152 self._revisioncache = (node, curr, rawtext)
3155 self._inner._revisioncache = (node, curr, rawtext)
3153 3156 self._chainbasecache[curr] = deltainfo.chainbase
3154 3157 return curr
3155 3158
@@ -3432,7 +3435,7 b' class revlog:'
3432 3435 self._docket.write(transaction, stripping=True)
3433 3436
3434 3437 # then reset internal state in memory to forget those revisions
3435 self._revisioncache = None
3438 self._inner._revisioncache = None
3436 3439 self._chaininfocache = util.lrucachedict(500)
3437 3440 self._inner._segmentfile.clear_cache()
3438 3441 self._inner._segmentfile_sidedata.clear_cache()
General Comments 0
You need to be logged in to leave comments. Login now