mercurial/commands.py
changeset 20497 19b1c62cee1c
parent 20470 78f4c2b7052f
child 20500 ce3f3082ec45
--- a/mercurial/commands.py	Wed Feb 12 16:09:18 2014 +0100
+++ b/mercurial/commands.py	Thu Feb 13 13:52:45 2014 -0800
@@ -2548,8 +2548,10 @@
             ui.write(('deltas against other : ') + fmt % pcfmt(numother,
                                                              numdeltas))
 
-@command('debugrevspec', [], ('REVSPEC'))
-def debugrevspec(ui, repo, expr):
+@command('debugrevspec',
+    [('', 'optimize', None, _('print parsed tree after optimizing'))],
+    ('REVSPEC'))
+def debugrevspec(ui, repo, expr, **opts):
     """parse and apply a revision specification
 
     Use --verbose to print the parsed tree before and after aliases
@@ -2561,6 +2563,9 @@
         newtree = revset.findaliases(ui, tree)
         if newtree != tree:
             ui.note(revset.prettyformat(newtree), "\n")
+        if opts["optimize"]:
+            weight, optimizedtree = revset.optimize(newtree, True)
+            ui.note("* optimized:\n", revset.prettyformat(optimizedtree), "\n")
     func = revset.match(ui, expr)
     for c in func(repo, revset.baseset(range(len(repo)))):
         ui.write("%s\n" % c)