[PATCH 2 of 9] help: let 'hg help debug' show the list of secret debug commands

Siddharth Agarwal sid0 at fb.com
Wed Mar 19 02:58:13 UTC 2014


On 03/18/2014 04:33 PM, Mads Kiilerich wrote:
> # HG changeset patch
> # User Mads Kiilerich <madski at unity3d.com>
> # Date 1394896444 -3600
> #      Sat Mar 15 16:14:04 2014 +0100
> # Node ID ab2a99f9f3396fb705bd621fd5b2de04783ac101
> # Parent  ffaeeb8d43872aca4c329937b793c6b4919ce192
> help: let 'hg help debug' show the list of secret debug commands
>
> The names of the debug commands are not easy to remember and they are not easy
> to find.

hg help --debug?

> diff --git a/mercurial/help.py b/mercurial/help.py
> --- a/mercurial/help.py
> +++ b/mercurial/help.py
> @@ -311,6 +311,8 @@ def help_(ui, name, unknowncmd=False, fu
>           # list of commands
>           if name == "shortlist":
>               header = _('basic commands:\n\n')
> +        elif name == "debug":
> +            header = _('debug commands (internal and unsupported):\n\n')
>           else:
>               header = _('list of commands:\n\n')
>   
> @@ -326,7 +328,7 @@ def help_(ui, name, unknowncmd=False, fu
>               if name == "shortlist" and not f.startswith("^"):
>                   continue
>               f = f.lstrip("^")
> -            if not ui.debugflag and f.startswith("debug"):
> +            if not ui.debugflag and f.startswith("debug") and name != "debug":
>                   continue
>               doc = e[0].__doc__
>               if doc and 'DEPRECATED' in doc and not ui.verbose:
> diff --git a/tests/test-help.t b/tests/test-help.t
> --- a/tests/test-help.t
> +++ b/tests/test-help.t
> @@ -782,6 +782,67 @@ Test that default list of commands omits
>     use "hg -v help" to show builtin aliases and global options
>   
>   
> +Test list of internal help commands
> +
> +  $ hg help debug
> +  debug commands (internal and unsupported):
> +
> +   debugancestor
> +                 find the ancestor revision of two revisions in a given index
> +   debugbuilddag
> +                 builds a repo with a given DAG from scratch in the current
> +                 empty repo
> +   debugbundle   lists the contents of a bundle
> +   debugcheckstate
> +                 validate the correctness of the current dirstate
> +   debugcommands
> +                 list all available commands and options
> +   debugcomplete
> +                 returns the completion list associated with the given command
> +   debugdag      format the changelog or an index DAG as a concise textual
> +                 description
> +   debugdata     dump the contents of a data file revision
> +   debugdate     parse and display a date
> +   debugdirstate
> +                 show the contents of the current dirstate
> +   debugdiscovery
> +                 runs the changeset discovery protocol in isolation
> +   debugfileset  parse and apply a fileset specification
> +   debugfsinfo   show information detected about current filesystem
> +   debuggetbundle
> +                 retrieves a bundle from a repo
> +   debugignore   display the combined ignore pattern
> +   debugindex    dump the contents of an index file
> +   debugindexdot
> +                 dump an index DAG as a graphviz dot file
> +   debuginstall  test Mercurial installation
> +   debugknown    test whether node ids are known to a repo
> +   debuglabelcomplete
> +                 complete "labels" - tags, open branch names, bookmark names
> +   debugobsolete
> +                 create arbitrary obsolete marker
> +   debugoptDEP   (no help text available)
> +   debugpathcomplete
> +                 complete part or all of a tracked path
> +   debugpushkey  access the pushkey key/value protocol
> +   debugpvec     (no help text available)
> +   debugrebuilddirstate
> +                 rebuild the dirstate as it would look like for the given
> +                 revision
> +   debugrename   dump rename information
> +   debugrevlog   show data and statistics about a revlog
> +   debugrevspec  parse and apply a revision specification
> +   debugsetparents
> +                 manually set the parents of the current working directory
> +   debugsub      (no help text available)
> +   debugsuccessorssets
> +                 show set of successors for revision
> +   debugwalk     show how files match on given patterns
> +   debugwireargs
> +                 (no help text available)
> +
> +  use "hg -v help debug" to show builtin aliases and global options
> +
>   
>   Test list of commands with command with no help text
>   
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://urldefense.proofpoint.com/v1/url?u=http://selenic.com/mailman/listinfo/mercurial-devel&k=ZVNjlDMF0FElm4dQtryO4A%3D%3D%0A&r=%2FSg8Zq7yFXBOhOzuAORckw%3D%3D%0A&m=fS5rbfVFOYis3obS9%2BN02wP04LVjFPlWVQ8wi6xEc3U%3D%0A&s=e8c12d5f2491b3a74a891f60581a4346a984105051ff1189e40f79a604b7c9ca




More information about the Mercurial-devel mailing list