changeset 26648:be8a4e0800d8

reachableroots: use baseset lazy sorting smartset sorting is lazy (so faster in some case) and better (informs that the set is sorted allowing some optimisation). So we rely on it directly. Some test output are updated because we now have more information (ordering).
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 20 Aug 2015 17:23:21 -0700
parents 4ee2af2194d4
children 7154a4a08b96
files mercurial/changelog.py tests/test-parseindex.t tests/test-revset.t
diffstat 3 files changed, 17 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -186,8 +186,10 @@
         return self._nodecache
 
     def reachableroots(self, minroot, heads, roots, includepath=False):
-        return revset.baseset(sorted(
-            self.index.reachableroots2(minroot, heads, roots, includepath)))
+        rroots = self.index.reachableroots2(minroot, heads, roots, includepath)
+        rroots = revset.baseset(rroots)
+        rroots.sort()
+        return rroots
 
     def headrevs(self):
         if self.filteredrevs:
--- a/tests/test-parseindex.t
+++ b/tests/test-parseindex.t
@@ -96,9 +96,9 @@
   >         print inst
   > EOF
   good heads:
-  0: <baseset [0]>
-  1: <baseset [0]>
-  -1: <baseset []>
+  0: <baseset+ [0]>
+  1: <baseset+ [0]>
+  -1: <baseset+ []>
   bad heads:
   2: head out of range
   10000: head out of range
@@ -106,14 +106,14 @@
   -10000: head out of range
   None: an integer is required
   good roots:
-  0: <baseset [0]>
-  1: <baseset [1]>
-  -1: <baseset [-1]>
+  0: <baseset+ [0]>
+  1: <baseset+ [1]>
+  -1: <baseset+ [-1]>
   out-of-range roots are ignored:
-  2: <baseset []>
-  10000: <baseset []>
-  -2: <baseset []>
-  -10000: <baseset []>
+  2: <baseset+ []>
+  10000: <baseset+ []>
+  -2: <baseset+ []>
+  -10000: <baseset+ []>
   bad roots:
   None: an integer is required
 
--- a/tests/test-revset.t
+++ b/tests/test-revset.t
@@ -141,7 +141,7 @@
     ('symbol', '3')
     ('symbol', '6'))
   * set:
-  <baseset [3, 5, 6]>
+  <baseset+ [3, 5, 6]>
   3
   5
   6
@@ -991,7 +991,7 @@
       ('symbol', '4')))
   * set:
   <addset
-    <baseset [5, 3, 1]>,
+    <baseset- [1, 3, 5]>,
     <generatorset+>>
   5
   3
@@ -1014,7 +1014,7 @@
   * set:
   <addset+
     <generatorset+>,
-    <baseset [5, 3, 1]>>
+    <baseset- [1, 3, 5]>>
   0
   1
   2