mercurial/debugcommands.py
changeset 30504 c3bdc27121d1
parent 30503 6bfb333a6f2f
child 30505 158b41842fd2
--- a/mercurial/debugcommands.py	Wed Aug 17 20:38:29 2016 -0700
+++ b/mercurial/debugcommands.py	Wed Aug 17 20:40:13 2016 -0700
@@ -321,3 +321,11 @@
     if errors:
         error = _(".hg/dirstate inconsistent with current parent's manifest")
         raise error.Abort(error)
+
+@command('debugcommands', [], _('[COMMAND]'), norepo=True)
+def debugcommands(ui, cmd='', *args):
+    """list all available commands and options"""
+    for cmd, vals in sorted(commands.table.iteritems()):
+        cmd = cmd.split('|')[0].strip('^')
+        opts = ', '.join([i[1] for i in vals[1]])
+        ui.write('%s: %s\n' % (cmd, opts))