diff mercurial/revset.py @ 33075:d83b189aef83

dagop: change revdescendants() to include all root revisions Prepares for adding depth support. I want to process depth=0 in revdescendants() to make things simpler. only() also calls dagop.revdescendants(), but it filters out root revisions explicitly. So this should cause no problem. # descendants(0) using hg repo 0) 0.052380 1) 0.051226 # only(tip) using hg repo 0) 0.001433 1) 0.001425
author Yuya Nishihara <yuya@tcha.org>
date Tue, 20 Jun 2017 22:26:52 +0900
parents f63d111258da
children a53bfc2845f2
line wrap: on
line diff
--- a/mercurial/revset.py	Tue Jun 20 22:11:23 2017 +0900
+++ b/mercurial/revset.py	Tue Jun 20 22:26:52 2017 +0900
@@ -600,19 +600,7 @@
     if not roots:
         return baseset()
     s = dagop.revdescendants(repo, roots, followfirst)
-
-    # Both sets need to be ascending in order to lazily return the union
-    # in the correct order.
-    base = subset & roots
-    desc = subset & s
-    result = base + desc
-    if subset.isascending():
-        result.sort()
-    elif subset.isdescending():
-        result.sort(reverse=True)
-    else:
-        result = subset & result
-    return result
+    return subset & s
 
 @predicate('descendants(set)', safe=True)
 def descendants(repo, subset, x):