Mercurial > hg
changeset 30003:46825334f270
graphlog: preserve topo sort even if additional filter options specified
Use ordered=revset.followorder instead. This change is logically the same
as fa5e4f58dfbc.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 22 Sep 2016 20:53:53 +0900 |
parents | 599912a62ff6 |
children | 5aaa3d6b7e92 |
files | mercurial/cmdutil.py tests/test-glog-topological.t |
diffstat | 2 files changed, 16 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Thu Sep 22 21:52:00 2016 +0900 +++ b/mercurial/cmdutil.py Thu Sep 22 20:53:53 2016 +0900 @@ -2155,12 +2155,9 @@ # Revset matchers often operate faster on revisions in changelog # order, because most filters deal with the changelog. revs.reverse() - matcher = revset.match(repo.ui, expr) - # Revset matches can reorder revisions. "A or B" typically returns - # returns the revision matching A then the revision matching B. Sort - # again to fix that. + matcher = revset.match(repo.ui, expr, order=revset.followorder) revs = matcher(repo, revs) - revs.sort(reverse=True) + revs.reverse() if limit is not None: limitedrevs = [] for idx, rev in enumerate(revs):
--- a/tests/test-glog-topological.t Thu Sep 22 21:52:00 2016 +0900 +++ b/tests/test-glog-topological.t Thu Sep 22 20:53:53 2016 +0900 @@ -60,6 +60,20 @@ o 0 +(display nodes filtered by log options) + + $ hg log -G -r 'sort(all(), topo)' -k '.3' + o 8 + | + o 3 + | + ~ + o 7 + | + o 6 + | + ~ + (revset skipping nodes) $ hg log -G --rev 'sort(not (2+6), topo)'