Mercurial > public > mercurial-scm > hg-stable
diff mercurial/cmdutil.py @ 35543:a7f7eff4ec08
log: merge getlogrevs() and getgraphlogrevs()
cmdutil.graphlog() is updated to receive (revs, filematcher) as arguments
to make sure that opts['graph'] is set when getlogrevs() is invoked.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 04 Jan 2018 10:51:41 +0900 |
parents | 817a3d20dd01 |
children | 8494944940e5 |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Sat Dec 30 17:55:23 2017 +0900 +++ b/mercurial/cmdutil.py Thu Jan 04 10:51:41 2018 +0900 @@ -2506,7 +2506,7 @@ revs.reverse() return revs -def getgraphlogrevs(repo, pats, opts): +def getlogrevs(repo, pats, opts): """Return (revs, expr, filematcher) where revs is an iterable of revision numbers, expr is a revset string built from log options and file patterns or None, and used to filter 'revs'. If --stat or @@ -2519,7 +2519,7 @@ if not revs: return smartset.baseset(), None, None expr, filematcher = _makelogrevset(repo, pats, opts, revs) - if opts.get('rev'): + if opts.get('graph') and opts.get('rev'): # User-specified revs might be unsorted, but don't sort before # _makelogrevset because it might depend on the order of revs if not (revs.isdescending() or revs.istopo()): @@ -2537,32 +2537,6 @@ return revs, expr, filematcher -def getlogrevs(repo, pats, opts): - """Return (revs, expr, filematcher) where revs is an iterable of - revision numbers, expr is a revset string built from log options - and file patterns or None, and used to filter 'revs'. If --stat or - --patch are not passed filematcher is None. Otherwise it is a - callable taking a revision number and returning a match objects - filtering the files to be detailed when displaying the revision. - """ - limit = loglimit(opts) - revs = _logrevs(repo, opts) - if not revs: - return smartset.baseset([]), None, None - expr, filematcher = _makelogrevset(repo, pats, opts, revs) - if expr: - matcher = revset.match(repo.ui, expr) - revs = matcher(repo, revs) - if limit is not None: - limitedrevs = [] - for idx, r in enumerate(revs): - if limit <= idx: - break - limitedrevs.append(r) - revs = smartset.baseset(limitedrevs) - - return revs, expr, filematcher - def _parselinerangelogopt(repo, opts): """Parse --line-range log option and return a list of tuples (filename, (fromline, toline)). @@ -2719,9 +2693,8 @@ lines = [] displayer.close() -def graphlog(ui, repo, pats, opts): +def graphlog(ui, repo, revs, filematcher, opts): # Parameters are identical to log command ones - revs, expr, filematcher = getgraphlogrevs(repo, pats, opts) revdag = graphmod.dagwalker(repo, revs) getrenamed = None