printrevset.py
41 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
/ tests / printrevset.py
Augie Fackler
|
r39093 | from __future__ import absolute_import | ||
from mercurial import ( | ||||
cmdutil, | ||||
commands, | ||||
extensions, | ||||
logcmdutil, | ||||
revsetlang, | ||||
smartset, | ||||
) | ||||
from mercurial.utils import ( | ||||
stringutil, | ||||
) | ||||
def logrevset(repo, pats, opts): | ||||
revs = logcmdutil._initialrevs(repo, opts) | ||||
if not revs: | ||||
return None | ||||
match, pats, slowpath = logcmdutil._makematcher(repo, revs, pats, opts) | ||||
return logcmdutil._makerevset(repo, match, pats, slowpath, opts) | ||||
def uisetup(ui): | ||||
def printrevset(orig, repo, pats, opts): | ||||
revs, filematcher = orig(repo, pats, opts) | ||||
if opts.get(b'print_revset'): | ||||
expr = logrevset(repo, pats, opts) | ||||
if expr: | ||||
tree = revsetlang.parse(expr) | ||||
tree = revsetlang.analyze(tree) | ||||
else: | ||||
tree = [] | ||||
ui = repo.ui | ||||
ui.write(b'%s\n' % stringutil.pprint(opts.get(b'rev', []))) | ||||
ui.write(revsetlang.prettyformat(tree) + b'\n') | ||||
ui.write(stringutil.prettyrepr(revs) + b'\n') | ||||
revs = smartset.baseset() # display no revisions | ||||
return revs, filematcher | ||||
extensions.wrapfunction(logcmdutil, 'getrevs', printrevset) | ||||
aliases, entry = cmdutil.findcmd(b'log', commands.table) | ||||
entry[1].append((b'', b'print-revset', False, | ||||
b'print generated revset and exit (DEPRECATED)')) | ||||