--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/printrevset.py Fri Aug 10 02:02:40 2018 -0400
@@ -0,0 +1,41 @@
+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)'))