diff -r 8d295ce6e488 -r eb1c9700d19d mercurial/cmdutil.py --- a/mercurial/cmdutil.py Thu Feb 05 23:14:44 2015 +0900 +++ b/mercurial/cmdutil.py Thu Feb 05 23:49:18 2015 +0900 @@ -1834,12 +1834,8 @@ # Default --rev value depends on --follow but --follow behaviour # depends on revisions resolved from --rev... follow = opts.get('follow') or opts.get('follow_first') - possiblyunsorted = False # whether revs might need sorting if opts.get('rev'): revs = scmutil.revrange(repo, opts['rev']) - # Don't sort here because _makelogrevset might depend on the - # order of revs - possiblyunsorted = True else: if follow and len(repo) > 0: revs = repo.revs('reverse(:.)') @@ -1849,7 +1845,9 @@ if not revs: return revset.baseset(), None, None expr, filematcher = _makelogrevset(repo, pats, opts, revs) - if possiblyunsorted: + if opts.get('rev'): + # User-specified revs might be unsorted, but don't sort before + # _makelogrevset because it might depend on the order of revs revs.sort(reverse=True) if expr: # Revset matchers often operate faster on revisions in changelog