Mercurial > public > mercurial-scm > hg
diff mercurial/revset.py @ 38479:72621094505f
revset: fix heads() order to always follow the input set (BC)
An argument expression should never affect the order of the result set.
That's the rule of the revset predicates.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 27 Jun 2018 23:39:41 +0900 |
parents | f1d55ae2c5c8 |
children | b23ef2f06d98 |
line wrap: on
line diff
--- a/mercurial/revset.py Wed Jun 27 23:33:57 2018 +0900 +++ b/mercurial/revset.py Wed Jun 27 23:39:41 2018 +0900 @@ -1129,11 +1129,14 @@ hs.update(cl.rev(h) for h in ls) return subset & baseset(hs) -@predicate('heads(set)', safe=True) -def heads(repo, subset, x): +@predicate('heads(set)', safe=True, takeorder=True) +def heads(repo, subset, x, order): """Members of set with no children in set. """ - s = getset(repo, subset, x) + # argument set should never define order + if order == defineorder: + order = followorder + s = getset(repo, subset, x, order=order) ps = parents(repo, subset, x) return s - ps