changeset 27257:49a76d3d43b1

repoview: stop recomputing cached key in all case As explained in the comment, we were computing the key of the cache value every time because of some obscure MQ test failure. I've dropped that code and ran the test again that failure is gone. I assume some transaction cleanup got rid of it. So we are dropping that code. This provide a significant speedup. Testing `hg log` on Mozilla-central this reduce the time spent on changelog cache validation by a third: before: 19.5s of 80s after: 12.2s of 69s (With stupid python profiler overhead)
author Pierre-Yves David <pierre-yves.david@fb.com>
date Fri, 04 Dec 2015 14:04:24 -0800
parents 45124eaab4e2
children beda2c9dbbff
files mercurial/repoview.py
diffstat 1 files changed, 1 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/repoview.py	Sat Dec 05 21:40:38 2015 -0800
+++ b/mercurial/repoview.py	Fri Dec 04 14:04:24 2015 -0800
@@ -305,16 +305,7 @@
         newkey = (len(unfichangelog), unfichangelog.tip(), hash(revs),
                   unfichangelog._delayed)
         if cl is not None:
-            # we need to check curkey too for some obscure reason.
-            # MQ test show a corruption of the underlying repo (in _clcache)
-            # without change in the cachekey.
-            oldfilter = cl.filteredrevs
-            try:
-                cl.filteredrevs = ()  # disable filtering for tip
-                curkey = (len(cl), cl.tip(), hash(oldfilter), cl._delayed)
-            finally:
-                cl.filteredrevs = oldfilter
-            if newkey != self._clcachekey or newkey != curkey:
+            if newkey != self._clcachekey:
                 cl = None
         # could have been made None by the previous if
         if cl is None: