reachableroots: construct and sort baseset in revset module
This can remove the dependency from changelog to revset, which seems a bit awkward
for me.
--- a/mercurial/changelog.py Fri Aug 21 16:12:24 2015 -0700
+++ b/mercurial/changelog.py Fri Aug 28 11:14:24 2015 +0900
@@ -18,7 +18,6 @@
encoding,
error,
revlog,
- revset,
util,
)
@@ -186,10 +185,7 @@
return self._nodecache
def reachableroots(self, minroot, heads, roots, includepath=False):
- rroots = self.index.reachableroots2(minroot, heads, roots, includepath)
- rroots = revset.baseset(rroots)
- rroots.sort()
- return rroots
+ return self.index.reachableroots2(minroot, heads, roots, includepath)
def headrevs(self):
if self.filteredrevs:
--- a/mercurial/revset.py Fri Aug 21 16:12:24 2015 -0700
+++ b/mercurial/revset.py Fri Aug 28 11:14:24 2015 +0900
@@ -92,7 +92,7 @@
If includepath is True, return (<roots>::<heads>)."""
if not roots:
- return baseset()
+ return []
parentrevs = repo.changelog.parentrevs
roots = set(roots)
visit = list(heads)
@@ -123,8 +123,6 @@
for parent in seen[rev]:
if parent in reachable:
reached(rev)
- reachable = baseset(reachable)
- reachable.sort()
return reachable
def reachableroots(repo, roots, heads, includepath=False):
@@ -137,9 +135,12 @@
roots = list(roots)
heads = list(heads)
try:
- return repo.changelog.reachableroots(minroot, heads, roots, includepath)
+ revs = repo.changelog.reachableroots(minroot, heads, roots, includepath)
except AttributeError:
- return reachablerootspure(repo, minroot, roots, heads, includepath)
+ revs = reachablerootspure(repo, minroot, roots, heads, includepath)
+ revs = baseset(revs)
+ revs.sort()
+ return revs
elements = {
# token-type: binding-strength, primary, prefix, infix, suffix
--- a/tests/test-parseindex.t Fri Aug 21 16:12:24 2015 -0700
+++ b/tests/test-parseindex.t Fri Aug 28 11:14:24 2015 +0900
@@ -96,9 +96,9 @@
> print inst
> EOF
good heads:
- 0: <baseset+ [0]>
- 1: <baseset+ [0]>
- -1: <baseset+ []>
+ 0: [0]
+ 1: [0]
+ -1: []
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: [0]
+ 1: [1]
+ -1: [-1]
out-of-range roots are ignored:
- 2: <baseset+ []>
- 10000: <baseset+ []>
- -2: <baseset+ []>
- -10000: <baseset+ []>
+ 2: []
+ 10000: []
+ -2: []
+ -10000: []
bad roots:
None: an integer is required