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 |
|
|
|
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 |
|
|
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