[PATCH 1 of 6] revlog: make clearcaches() more effective
Gregory Szorc
gregory.szorc at gmail.com
Mon Dec 21 04:04:09 UTC 2015
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1450662500 28800
# Sun Dec 20 17:48:20 2015 -0800
# Node ID 888293905f3c109d110f45f123bea3273c5ca6a9
# Parent 5df74b2f296df7f44a08106df4f9dd97a5aa726a
revlog: make clearcaches() more effective
clearcaches() was added several years ago in e8d37b78acfb as part
of implementing a perf command. Since revlog instances have many caches
and since the spirit of this mostly unused method is to facilitate
performance testing, I think it's appropriate for all the revlog's
caches to get cleared when it is called.
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -334,16 +334,21 @@ class revlog(object):
def hasnode(self, node):
try:
self.rev(node)
return True
except KeyError:
return False
def clearcaches(self):
+ self._cache = None
+ self._basecache = None
+ self._chunkcache = (0, '')
+ self._pcache = {}
+
try:
self._nodecache.clearcaches()
except AttributeError:
self._nodecache = {nullid: nullrev}
self._nodepos = None
def rev(self, node):
try:
More information about the Mercurial-devel
mailing list