mercurial/cmdutil.py
changeset 18169 ae663cba9a8d
parent 18031 54f063acc5ea
child 18170 0dcc77b271b9
equal deleted inserted replaced
18168:c351759ab0a0 18169:ae663cba9a8d
  1428     if not len(repo):
  1428     if not len(repo):
  1429         return iter([]), None, None
  1429         return iter([]), None, None
  1430     # Default --rev value depends on --follow but --follow behaviour
  1430     # Default --rev value depends on --follow but --follow behaviour
  1431     # depends on revisions resolved from --rev...
  1431     # depends on revisions resolved from --rev...
  1432     follow = opts.get('follow') or opts.get('follow_first')
  1432     follow = opts.get('follow') or opts.get('follow_first')
       
  1433     possiblyunsorted = False # whether revs might need sorting
  1433     if opts.get('rev'):
  1434     if opts.get('rev'):
  1434         revs = scmutil.revrange(repo, opts['rev'])
  1435         revs = scmutil.revrange(repo, opts['rev'])
       
  1436         # Don't sort here because _makegraphlogrevset might depend on the
       
  1437         # order of revs
       
  1438         possiblyunsorted = True
  1435     else:
  1439     else:
  1436         if follow and len(repo) > 0:
  1440         if follow and len(repo) > 0:
  1437             revs = repo.revs('reverse(:.)')
  1441             revs = repo.revs('reverse(:.)')
  1438         else:
  1442         else:
  1439             revs = list(repo.changelog)
  1443             revs = list(repo.changelog)
  1440             revs.reverse()
  1444             revs.reverse()
  1441     if not revs:
  1445     if not revs:
  1442         return iter([]), None, None
  1446         return iter([]), None, None
  1443     expr, filematcher = _makegraphlogrevset(repo, pats, opts, revs)
  1447     expr, filematcher = _makegraphlogrevset(repo, pats, opts, revs)
       
  1448     if possiblyunsorted:
       
  1449         revs.sort(reverse=True)
  1444     if expr:
  1450     if expr:
  1445         matcher = revset.match(repo.ui, expr)
  1451         matcher = revset.match(repo.ui, expr)
  1446         revs = increasingrevs(repo, revs, matcher)
  1452         revs = increasingrevs(repo, revs, matcher)
  1447     if not opts.get('hidden'):
  1453     if not opts.get('hidden'):
  1448         # --hidden is still experimental and not worth a dedicated revset
  1454         # --hidden is still experimental and not worth a dedicated revset