diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2189,19 +2189,10 @@ def getlogrevs(repo, pats, opts): # 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):