mercurial/scmutil.py
changeset 45515 89f0d9f87701
parent 45483 d252f51ab032
child 45519 9b16bb3b2349
--- a/mercurial/scmutil.py	Mon Sep 21 15:05:38 2020 -0400
+++ b/mercurial/scmutil.py	Wed Sep 16 12:13:46 2020 -0700
@@ -364,13 +364,15 @@
     cl = repo.changelog
     if not cl.filteredrevs:
         return None
-    key = None
-    revs = sorted(r for r in cl.filteredrevs if r <= maxrev)
-    if revs:
-        s = hashutil.sha1()
-        for rev in revs:
-            s.update(b'%d;' % rev)
-        key = s.digest()
+    key = cl._filteredrevs_hashcache.get(maxrev)
+    if not key:
+        revs = sorted(r for r in cl.filteredrevs if r <= maxrev)
+        if revs:
+            s = hashutil.sha1()
+            for rev in revs:
+                s.update(b'%d;' % rev)
+            key = s.digest()
+            cl._filteredrevs_hashcache[maxrev] = key
     return key