# HG changeset patch # User Yuya Nishihara # Date 1462253040 -32400 # Node ID fa5e4f58dfbc749b0f4c7375700eb18b1471d471 # Parent 1b5931604a5a03650ddc5933864327135b06206b log: drop hack to fix order of revset (issue5100) Specify ordered=revset.followorder instead. This patch effectively backs out c407583cf5f6. revs.sort(reverse=True) is replaced by revs.reverse() because the matcher should no longer reorder revisions. diff -r 1b5931604a5a -r fa5e4f58dfbc mercurial/cmdutil.py --- a/mercurial/cmdutil.py Tue May 03 14:18:28 2016 +0900 +++ b/mercurial/cmdutil.py Tue May 03 14:24:00 2016 +0900 @@ -2189,19 +2189,10 @@ # order, because most filters deal with the changelog. if not opts.get('rev'): 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. - fixopts = ['branch', 'only_branch', 'keyword', 'user'] - oldrevs = revs + matcher = revset.match(repo.ui, expr, order=revset.followorder) revs = matcher(repo, revs) if not opts.get('rev'): - revs.sort(reverse=True) - elif len(pats) > 1 or any(len(opts.get(op, [])) > 1 for op in fixopts): - # XXX "A or B" is known to change the order; fix it by filtering - # matched set again (issue5100) - revs = oldrevs & revs + revs.reverse() if limit is not None: limitedrevs = [] for idx, r in enumerate(revs):