revset-rangeset: call 'getset' on a 'fullreposet'
authorPierre-Yves David <pierre-yves.david@fb.com>
Thu, 16 Oct 2014 23:10:44 -0700
changeset 23162 69524a05a7fa
parent 23161 6f31f46b8544
child 23163 6f1b8b3f12fd
revset-rangeset: call 'getset' on a 'fullreposet' Calling 'baseset(repo.changelog)' builds a list for all revisions in the repo. And we already have the lazy and efficient 'fullreposet' class for this purpose. This gives us the usual benefit ofs the fullreposet: revset) 10:100 before) wall 0.002774 comb 0.000000 user 0.000000 sys 0.000000 (best of 797) after) wall 0.001977 comb 0.000000 user 0.000000 sys 0.000000 (best of 1244) revset) parents(10):parents(100) before) wall 0.005054 comb 0.000000 user 0.000000 sys 0.000000 (best of 481) after) wall 0.002060 comb 0.000000 user 0.000000 sys 0.000000 (best of 1056)
mercurial/revset.py
--- a/mercurial/revset.py	Sun Oct 19 22:19:22 2014 -0700
+++ b/mercurial/revset.py	Thu Oct 16 23:10:44 2014 -0700
@@ -265,9 +265,8 @@
     return stringset(repo, subset, x)
 
 def rangeset(repo, subset, x, y):
-    cl = baseset(repo.changelog)
-    m = getset(repo, cl, x)
-    n = getset(repo, cl, y)
+    m = getset(repo, fullreposet(repo), x)
+    n = getset(repo, fullreposet(repo), y)
 
     if not m or not n:
         return baseset()