printrevset.py
48 lines
| 1.4 KiB
| text/x-python
|
PythonLexer
/ tests / printrevset.py
Augie Fackler
|
r39093 | from __future__ import absolute_import | ||
from mercurial import ( | ||||
Augie Fackler
|
r43346 | cmdutil, | ||
commands, | ||||
extensions, | ||||
logcmdutil, | ||||
revsetlang, | ||||
smartset, | ||||
Augie Fackler
|
r39093 | ) | ||
Augie Fackler
|
r43346 | from mercurial.utils import stringutil | ||
Augie Fackler
|
r39093 | |||
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) | ||||
Augie Fackler
|
r43346 | |||
Augie Fackler
|
r39093 | 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 | ||||
Augie Fackler
|
r43346 | |||
Augie Fackler
|
r39093 | extensions.wrapfunction(logcmdutil, 'getrevs', printrevset) | ||
aliases, entry = cmdutil.findcmd(b'log', commands.table) | ||||
Augie Fackler
|
r43346 | entry[1].append( | ||
( | ||||
b'', | ||||
b'print-revset', | ||||
False, | ||||
b'print generated revset and exit (DEPRECATED)', | ||||
) | ||||
) | ||||