mercurial/cmdutil.py
changeset 30004 5aaa3d6b7e92
parent 30003 46825334f270
child 30015 96b2dd3b184d
equal deleted inserted replaced
30003:46825334f270 30004:5aaa3d6b7e92
  2150         # User-specified revs might be unsorted, but don't sort before
  2150         # User-specified revs might be unsorted, but don't sort before
  2151         # _makelogrevset because it might depend on the order of revs
  2151         # _makelogrevset because it might depend on the order of revs
  2152         if not (revs.isdescending() or revs.istopo()):
  2152         if not (revs.isdescending() or revs.istopo()):
  2153             revs.sort(reverse=True)
  2153             revs.sort(reverse=True)
  2154     if expr:
  2154     if expr:
  2155         # Revset matchers often operate faster on revisions in changelog
       
  2156         # order, because most filters deal with the changelog.
       
  2157         revs.reverse()
       
  2158         matcher = revset.match(repo.ui, expr, order=revset.followorder)
  2155         matcher = revset.match(repo.ui, expr, order=revset.followorder)
  2159         revs = matcher(repo, revs)
  2156         revs = matcher(repo, revs)
  2160         revs.reverse()
       
  2161     if limit is not None:
  2157     if limit is not None:
  2162         limitedrevs = []
  2158         limitedrevs = []
  2163         for idx, rev in enumerate(revs):
  2159         for idx, rev in enumerate(revs):
  2164             if idx >= limit:
  2160             if idx >= limit:
  2165                 break
  2161                 break
  2180     revs = _logrevs(repo, opts)
  2176     revs = _logrevs(repo, opts)
  2181     if not revs:
  2177     if not revs:
  2182         return revset.baseset([]), None, None
  2178         return revset.baseset([]), None, None
  2183     expr, filematcher = _makelogrevset(repo, pats, opts, revs)
  2179     expr, filematcher = _makelogrevset(repo, pats, opts, revs)
  2184     if expr:
  2180     if expr:
  2185         # Revset matchers often operate faster on revisions in changelog
       
  2186         # order, because most filters deal with the changelog.
       
  2187         if not opts.get('rev'):
       
  2188             revs.reverse()
       
  2189         matcher = revset.match(repo.ui, expr, order=revset.followorder)
  2181         matcher = revset.match(repo.ui, expr, order=revset.followorder)
  2190         revs = matcher(repo, revs)
  2182         revs = matcher(repo, revs)
  2191         if not opts.get('rev'):
       
  2192             revs.reverse()
       
  2193     if limit is not None:
  2183     if limit is not None:
  2194         limitedrevs = []
  2184         limitedrevs = []
  2195         for idx, r in enumerate(revs):
  2185         for idx, r in enumerate(revs):
  2196             if limit <= idx:
  2186             if limit <= idx:
  2197                 break
  2187                 break