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).
--- a/mercurial/changelog.py Thu Aug 20 17:19:56 2015 -0700
+++ b/mercurial/changelog.py Thu Aug 20 17:23:21 2015 -0700
@@ -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 Thu Aug 20 17:19:56 2015 -0700
+++ b/tests/test-parseindex.t Thu Aug 20 17:23:21 2015 -0700
@@ -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 Thu Aug 20 17:19:56 2015 -0700
+++ b/tests/test-revset.t Thu Aug 20 17:23:21 2015 -0700
@@ -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