Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revset.py @ 26094:df41c7be16d6
reachableroots: construct and sort baseset in revset module
This can remove the dependency from changelog to revset, which seems a bit awkward
for me.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Fri, 28 Aug 2015 11:14:24 +0900 |
parents | 204131131766 |
children | 6eed95ca4c03 |
line wrap: on
line diff
--- 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