comparison mercurial/cmdutil.py @ 34037:205c47e30a93

revset: make match function follow given subset if specified (API) This should be sensible default since mfunc(subset) is roughly equivalent to 'subset & mfunc'. The order argument is still there so we can specify 'anyorder' if the order doesn't really matter.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 30 Aug 2017 22:51:28 +0900
parents de286200f722
children d5b2beca16c0
comparison
equal deleted inserted replaced
34036:de286200f722 34037:205c47e30a93
2557 # _makelogrevset because it might depend on the order of revs 2557 # _makelogrevset because it might depend on the order of revs
2558 if not (revs.isdescending() or revs.istopo()): 2558 if not (revs.isdescending() or revs.istopo()):
2559 revs.sort(reverse=True) 2559 revs.sort(reverse=True)
2560 if expr: 2560 if expr:
2561 matcher = revset.match(repo.ui, expr) 2561 matcher = revset.match(repo.ui, expr)
2562 revs = matcher(repo, revs, order=revset.followorder) 2562 revs = matcher(repo, revs)
2563 if limit is not None: 2563 if limit is not None:
2564 limitedrevs = [] 2564 limitedrevs = []
2565 for idx, rev in enumerate(revs): 2565 for idx, rev in enumerate(revs):
2566 if idx >= limit: 2566 if idx >= limit:
2567 break 2567 break
2583 if not revs: 2583 if not revs:
2584 return smartset.baseset([]), None, None 2584 return smartset.baseset([]), None, None
2585 expr, filematcher = _makelogrevset(repo, pats, opts, revs) 2585 expr, filematcher = _makelogrevset(repo, pats, opts, revs)
2586 if expr: 2586 if expr:
2587 matcher = revset.match(repo.ui, expr) 2587 matcher = revset.match(repo.ui, expr)
2588 revs = matcher(repo, revs, order=revset.followorder) 2588 revs = matcher(repo, revs)
2589 if limit is not None: 2589 if limit is not None:
2590 limitedrevs = [] 2590 limitedrevs = []
2591 for idx, r in enumerate(revs): 2591 for idx, r in enumerate(revs):
2592 if limit <= idx: 2592 if limit <= idx:
2593 break 2593 break