[PATCH v6] help: mark boolean flags with [no-] to explain that they can be negated (RFC)

Martin von Zweigbergk martinvonz at google.com
Thu Sep 29 12:00:48 EDT 2016


Nice. Thanks for doing this. Queued with the "RFC"s removed in flight.

On Thu, Sep 29, 2016 at 8:07 AM, Augie Fackler <raf at durin42.com> wrote:
> # HG changeset patch
> # User Augie Fackler <augie at google.com>
> # Date 1473821892 14400
> #      Tue Sep 13 22:58:12 2016 -0400
> # Node ID 95c7c3cbd873412d180f17b5b0dd292094f42746
> # Parent  e83f89d3b1f733d0ee5f23f6a2293279a17fbbfb
> help: mark boolean flags with [no-] to explain that they can be negated (RFC)
>
> That is, help gets tweaked thus:
>
>   global options ([+] can be repeated):
>    -v --[no-]verbose      enable additional output
>
>
> Still an RFC because it's still unclear what we should do. Other
> proposals have included:
>
>   global options ([+] can be repeated, options marked [?] are boolean flags):
>    -v --verbose[?]        enable additional output
>
> and
>
>   global options ([+] can be repeated, options marked [^] are boolean flags):
>    -v --verbose[^]        enable additional output
>
> which avoid the unfortunate visual noise in this patch. In this
> version's favor, it's consistent with what I'm used to seeing in man
> pages and similar documentation venues.
>
> diff --git a/mercurial/help.py b/mercurial/help.py
> --- a/mercurial/help.py
> +++ b/mercurial/help.py
> @@ -20,6 +20,7 @@ from . import (
>      encoding,
>      error,
>      extensions,
> +    fancyopts,
>      filemerge,
>      fileset,
>      minirst,
> @@ -65,6 +66,7 @@ def extshelp(ui):
>  def optrst(header, options, verbose):
>      data = []
>      multioccur = False
> +    alllong = set(o[1] for o in options)
>      for option in options:
>          if len(option) == 5:
>              shortopt, longopt, default, desc, optlabel = option
> @@ -87,6 +89,16 @@ def optrst(header, options, verbose):
>              multioccur = True
>          elif (default is not None) and not isinstance(default, bool):
>              lo += " %s" % optlabel
> +        elif longopt not in fancyopts.nevernegate:
> +            if longopt.startswith('no-'):
> +                # This odd if statement guards against showing
> +                # --no-commit and --commit on backout (as a practical
> +                # example) as --[no-]commit in help.
> +                if (longopt[3:]) not in alllong:
> +                    lo = '--[no-]' + lo[5:]
> +            else:
> +                if ('no-' + longopt) not in alllong:
> +                    lo = '--[no-]' + lo[2:]
>
>          data.append((so, lo, desc))
>
> diff --git a/tests/test-convert.t b/tests/test-convert.t
> --- a/tests/test-convert.t
> +++ b/tests/test-convert.t
> @@ -327,13 +327,13 @@
>     -r --rev REV [+]      import up to source revision REV
>     -A --authormap FILE   remap usernames using this file
>        --filemap FILE     remap file names using contents of file
> -      --full             apply filemap changes by converting all files again
> +      --[no-]full        apply filemap changes by converting all files again
>        --splicemap FILE   splice synthesized history into place
>        --branchmap FILE   change branch names while converting
> -      --branchsort       try to sort changesets by branches
> -      --datesort         try to sort changesets by date
> -      --sourcesort       preserve source changesets order
> -      --closesort        try to reorder closed revisions
> +      --[no-]branchsort  try to sort changesets by branches
> +      --[no-]datesort    try to sort changesets by date
> +      --[no-]sourcesort  preserve source changesets order
> +      --[no-]closesort   try to reorder closed revisions
>
>    (some details hidden, use --verbose to show complete help)
>    $ hg init a
> diff --git a/tests/test-dispatch.t b/tests/test-dispatch.t
> --- a/tests/test-dispatch.t
> +++ b/tests/test-dispatch.t
> @@ -23,7 +23,7 @@ Missing arg:
>
>     -o --output FORMAT       print output to file with formatted name
>     -r --rev REV             print the given revision
> -      --decode              apply any matching decode filter
> +      --[no-]decode         apply any matching decode filter
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
>
> diff --git a/tests/test-extdiff.t b/tests/test-extdiff.t
> --- a/tests/test-extdiff.t
> +++ b/tests/test-extdiff.t
> @@ -48,10 +48,10 @@ Should diff cloned directories:
>     -o --option OPT [+]      pass option to comparison program
>     -r --rev REV [+]         revision
>     -c --change REV          change made by revision
> -      --patch               compare patches for two revisions
> +      --[no-]patch          compare patches for two revisions
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -S --subrepos            recurse into subrepositories
> +   -S --[no-]subrepos       recurse into subrepositories
>
>    (some details hidden, use --verbose to show complete help)
>
> diff --git a/tests/test-extension.t b/tests/test-extension.t
> --- a/tests/test-extension.t
> +++ b/tests/test-extension.t
> @@ -530,19 +530,19 @@ hide outer repo
>        --cwd DIR           change working directory
>     -y --noninteractive    do not prompt, automatically pick the first choice for
>                            all prompts
> -   -q --quiet             suppress output
> -   -v --verbose           enable additional output
> +   -q --[no-]quiet        suppress output
> +   -v --[no-]verbose      enable additional output
>        --config CONFIG [+] set/override config option (use 'section.name=value')
> -      --debug             enable debugging output
> -      --debugger          start debugger
> +      --[no-]debug        enable debugging output
> +      --[no-]debugger     start debugger
>        --encoding ENCODE   set the charset encoding (default: ascii)
>        --encodingmode MODE set the charset encoding mode (default: strict)
> -      --traceback         always print a traceback on exception
> -      --time              time how long the command takes
> -      --profile           print command execution profile
> +      --[no-]traceback    always print a traceback on exception
> +      --[no-]time         time how long the command takes
> +      --[no-]profile      print command execution profile
>        --version           output version information and exit
>     -h --help              display help and exit
> -      --hidden            consider hidden changesets
> +      --[no-]hidden       consider hidden changesets
>
>
>
> @@ -565,19 +565,19 @@ hide outer repo
>        --cwd DIR           change working directory
>     -y --noninteractive    do not prompt, automatically pick the first choice for
>                            all prompts
> -   -q --quiet             suppress output
> -   -v --verbose           enable additional output
> +   -q --[no-]quiet        suppress output
> +   -v --[no-]verbose      enable additional output
>        --config CONFIG [+] set/override config option (use 'section.name=value')
> -      --debug             enable debugging output
> -      --debugger          start debugger
> +      --[no-]debug        enable debugging output
> +      --[no-]debugger     start debugger
>        --encoding ENCODE   set the charset encoding (default: ascii)
>        --encodingmode MODE set the charset encoding mode (default: strict)
> -      --traceback         always print a traceback on exception
> -      --time              time how long the command takes
> -      --profile           print command execution profile
> +      --[no-]traceback    always print a traceback on exception
> +      --[no-]time         time how long the command takes
> +      --[no-]profile      print command execution profile
>        --version           output version information and exit
>     -h --help              display help and exit
> -      --hidden            consider hidden changesets
> +      --[no-]hidden       consider hidden changesets
>
>
>
> @@ -624,10 +624,10 @@ Extension module help vs command help:
>     -o --option OPT [+]      pass option to comparison program
>     -r --rev REV [+]         revision
>     -c --change REV          change made by revision
> -      --patch               compare patches for two revisions
> +      --[no-]patch          compare patches for two revisions
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -S --subrepos            recurse into subrepositories
> +   -S --[no-]subrepos       recurse into subrepositories
>
>    (some details hidden, use --verbose to show complete help)
>
> @@ -851,19 +851,19 @@ extension help itself
>        --cwd DIR           change working directory
>     -y --noninteractive    do not prompt, automatically pick the first choice for
>                            all prompts
> -   -q --quiet             suppress output
> -   -v --verbose           enable additional output
> +   -q --[no-]quiet        suppress output
> +   -v --[no-]verbose      enable additional output
>        --config CONFIG [+] set/override config option (use 'section.name=value')
> -      --debug             enable debugging output
> -      --debugger          start debugger
> +      --[no-]debug        enable debugging output
> +      --[no-]debugger     start debugger
>        --encoding ENCODE   set the charset encoding (default: ascii)
>        --encodingmode MODE set the charset encoding mode (default: strict)
> -      --traceback         always print a traceback on exception
> -      --time              time how long the command takes
> -      --profile           print command execution profile
> +      --[no-]traceback    always print a traceback on exception
> +      --[no-]time         time how long the command takes
> +      --[no-]profile      print command execution profile
>        --version           output version information and exit
>     -h --help              display help and exit
> -      --hidden            consider hidden changesets
> +      --[no-]hidden       consider hidden changesets
>
>  Make sure that single '-v' option shows help and built-ins only for 'dodo' command
>    $ hg help -v dodo
> @@ -875,7 +875,7 @@ Make sure that single '-v' option shows
>
>    options:
>
> -    --mq operate on patch repository
> +    --[no-]mq operate on patch repository
>
>    global options ([+] can be repeated):
>
> @@ -884,19 +884,19 @@ Make sure that single '-v' option shows
>        --cwd DIR           change working directory
>     -y --noninteractive    do not prompt, automatically pick the first choice for
>                            all prompts
> -   -q --quiet             suppress output
> -   -v --verbose           enable additional output
> +   -q --[no-]quiet        suppress output
> +   -v --[no-]verbose      enable additional output
>        --config CONFIG [+] set/override config option (use 'section.name=value')
> -      --debug             enable debugging output
> -      --debugger          start debugger
> +      --[no-]debug        enable debugging output
> +      --[no-]debugger     start debugger
>        --encoding ENCODE   set the charset encoding (default: ascii)
>        --encodingmode MODE set the charset encoding mode (default: strict)
> -      --traceback         always print a traceback on exception
> -      --time              time how long the command takes
> -      --profile           print command execution profile
> +      --[no-]traceback    always print a traceback on exception
> +      --[no-]time         time how long the command takes
> +      --[no-]profile      print command execution profile
>        --version           output version information and exit
>     -h --help              display help and exit
> -      --hidden            consider hidden changesets
> +      --[no-]hidden       consider hidden changesets
>
>  In case when extension name doesn't match any of its commands,
>  help message should ask for '-v' to get list of built-in aliases
> @@ -955,19 +955,19 @@ help options '-v' and '-v -e' should be
>        --cwd DIR           change working directory
>     -y --noninteractive    do not prompt, automatically pick the first choice for
>                            all prompts
> -   -q --quiet             suppress output
> -   -v --verbose           enable additional output
> +   -q --[no-]quiet        suppress output
> +   -v --[no-]verbose      enable additional output
>        --config CONFIG [+] set/override config option (use 'section.name=value')
> -      --debug             enable debugging output
> -      --debugger          start debugger
> +      --[no-]debug        enable debugging output
> +      --[no-]debugger     start debugger
>        --encoding ENCODE   set the charset encoding (default: ascii)
>        --encodingmode MODE set the charset encoding mode (default: strict)
> -      --traceback         always print a traceback on exception
> -      --time              time how long the command takes
> -      --profile           print command execution profile
> +      --[no-]traceback    always print a traceback on exception
> +      --[no-]time         time how long the command takes
> +      --[no-]profile      print command execution profile
>        --version           output version information and exit
>     -h --help              display help and exit
> -      --hidden            consider hidden changesets
> +      --[no-]hidden       consider hidden changesets
>
>    $ hg help -v -e dudu
>    dudu extension -
> @@ -987,19 +987,19 @@ help options '-v' and '-v -e' should be
>        --cwd DIR           change working directory
>     -y --noninteractive    do not prompt, automatically pick the first choice for
>                            all prompts
> -   -q --quiet             suppress output
> -   -v --verbose           enable additional output
> +   -q --[no-]quiet        suppress output
> +   -v --[no-]verbose      enable additional output
>        --config CONFIG [+] set/override config option (use 'section.name=value')
> -      --debug             enable debugging output
> -      --debugger          start debugger
> +      --[no-]debug        enable debugging output
> +      --[no-]debugger     start debugger
>        --encoding ENCODE   set the charset encoding (default: ascii)
>        --encodingmode MODE set the charset encoding mode (default: strict)
> -      --traceback         always print a traceback on exception
> -      --time              time how long the command takes
> -      --profile           print command execution profile
> +      --[no-]traceback    always print a traceback on exception
> +      --[no-]time         time how long the command takes
> +      --[no-]profile      print command execution profile
>        --version           output version information and exit
>     -h --help              display help and exit
> -      --hidden            consider hidden changesets
> +      --[no-]hidden       consider hidden changesets
>
>  Disabled extension commands:
>
> diff --git a/tests/test-help.t b/tests/test-help.t
> --- a/tests/test-help.t
> +++ b/tests/test-help.t
> @@ -318,19 +318,19 @@ Test short command list with verbose opt
>        --cwd DIR           change working directory
>     -y --noninteractive    do not prompt, automatically pick the first choice for
>                            all prompts
> -   -q --quiet             suppress output
> -   -v --verbose           enable additional output
> +   -q --[no-]quiet        suppress output
> +   -v --[no-]verbose      enable additional output
>        --config CONFIG [+] set/override config option (use 'section.name=value')
> -      --debug             enable debugging output
> -      --debugger          start debugger
> +      --[no-]debug        enable debugging output
> +      --[no-]debugger     start debugger
>        --encoding ENCODE   set the charset encoding (default: ascii)
>        --encodingmode MODE set the charset encoding mode (default: strict)
> -      --traceback         always print a traceback on exception
> -      --time              time how long the command takes
> -      --profile           print command execution profile
> +      --[no-]traceback    always print a traceback on exception
> +      --[no-]time         time how long the command takes
> +      --[no-]profile      print command execution profile
>        --version           output version information and exit
>     -h --help              display help and exit
> -      --hidden            consider hidden changesets
> +      --[no-]hidden       consider hidden changesets
>
>    (use 'hg help' for the full list of commands)
>
> @@ -353,8 +353,8 @@ Test short command list with verbose opt
>
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -S --subrepos            recurse into subrepositories
> -   -n --dry-run             do not perform actions, just print output
> +   -S --[no-]subrepos       recurse into subrepositories
> +   -n --[no-]dry-run        do not perform actions, just print output
>
>    (some details hidden, use --verbose to show complete help)
>
> @@ -404,8 +404,8 @@ Verbose help for add
>
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -S --subrepos            recurse into subrepositories
> -   -n --dry-run             do not perform actions, just print output
> +   -S --[no-]subrepos       recurse into subrepositories
> +   -n --[no-]dry-run        do not perform actions, just print output
>
>    global options ([+] can be repeated):
>
> @@ -414,19 +414,19 @@ Verbose help for add
>        --cwd DIR           change working directory
>     -y --noninteractive    do not prompt, automatically pick the first choice for
>                            all prompts
> -   -q --quiet             suppress output
> -   -v --verbose           enable additional output
> +   -q --[no-]quiet        suppress output
> +   -v --[no-]verbose      enable additional output
>        --config CONFIG [+] set/override config option (use 'section.name=value')
> -      --debug             enable debugging output
> -      --debugger          start debugger
> +      --[no-]debug        enable debugging output
> +      --[no-]debugger     start debugger
>        --encoding ENCODE   set the charset encoding (default: ascii)
>        --encodingmode MODE set the charset encoding mode (default: strict)
> -      --traceback         always print a traceback on exception
> -      --time              time how long the command takes
> -      --profile           print command execution profile
> +      --[no-]traceback    always print a traceback on exception
> +      --[no-]time         time how long the command takes
> +      --[no-]profile      print command execution profile
>        --version           output version information and exit
>     -h --help              display help and exit
> -      --hidden            consider hidden changesets
> +      --[no-]hidden       consider hidden changesets
>
>  Test the textwidth config option
>
> @@ -464,8 +464,8 @@ Test help option with version option
>
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -S --subrepos            recurse into subrepositories
> -   -n --dry-run             do not perform actions, just print output
> +   -S --[no-]subrepos       recurse into subrepositories
> +   -n --[no-]dry-run        do not perform actions, just print output
>
>    (use 'hg add -h' to show more help)
>    [255]
> @@ -534,23 +534,23 @@ Test command without options
>
>    options ([+] can be repeated):
>
> -   -r --rev REV [+]         revision
> -   -c --change REV          change made by revision
> -   -a --text                treat all files as text
> -   -g --git                 use git extended diff format
> -      --nodates             omit dates from diff headers
> -      --noprefix            omit a/ and b/ prefixes from filenames
> -   -p --show-function       show which function each change is in
> -      --reverse             produce a diff that undoes the changes
> -   -w --ignore-all-space    ignore white space when comparing lines
> -   -b --ignore-space-change ignore changes in the amount of white space
> -   -B --ignore-blank-lines  ignore changes whose lines are all blank
> -   -U --unified NUM         number of lines of context to show
> -      --stat                output diffstat-style summary of changes
> -      --root DIR            produce diffs relative to subdirectory
> -   -I --include PATTERN [+] include names matching the given patterns
> -   -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -S --subrepos            recurse into subrepositories
> +   -r --rev REV [+]              revision
> +   -c --change REV               change made by revision
> +   -a --[no-]text                treat all files as text
> +   -g --[no-]git                 use git extended diff format
> +      --[no-]nodates             omit dates from diff headers
> +      --[no-]noprefix            omit a/ and b/ prefixes from filenames
> +   -p --[no-]show-function       show which function each change is in
> +      --[no-]reverse             produce a diff that undoes the changes
> +   -w --[no-]ignore-all-space    ignore white space when comparing lines
> +   -b --[no-]ignore-space-change ignore changes in the amount of white space
> +   -B --[no-]ignore-blank-lines  ignore changes whose lines are all blank
> +   -U --unified NUM              number of lines of context to show
> +      --[no-]stat                output diffstat-style summary of changes
> +      --root DIR                 produce diffs relative to subdirectory
> +   -I --include PATTERN [+]      include names matching the given patterns
> +   -X --exclude PATTERN [+]      exclude names matching the given patterns
> +   -S --[no-]subrepos            recurse into subrepositories
>
>    (some details hidden, use --verbose to show complete help)
>
> @@ -596,22 +596,22 @@ Test command without options
>
>    options ([+] can be repeated):
>
> -   -A --all                 show status of all files
> -   -m --modified            show only modified files
> -   -a --added               show only added files
> -   -r --removed             show only removed files
> -   -d --deleted             show only deleted (but tracked) files
> -   -c --clean               show only files without changes
> -   -u --unknown             show only unknown (not tracked) files
> -   -i --ignored             show only ignored files
> -   -n --no-status           hide status prefix
> -   -C --copies              show source of copied files
> -   -0 --print0              end filenames with NUL, for use with xargs
> +   -A --[no-]all            show status of all files
> +   -m --[no-]modified       show only modified files
> +   -a --[no-]added          show only added files
> +   -r --[no-]removed        show only removed files
> +   -d --[no-]deleted        show only deleted (but tracked) files
> +   -c --[no-]clean          show only files without changes
> +   -u --[no-]unknown        show only unknown (not tracked) files
> +   -i --[no-]ignored        show only ignored files
> +   -n --[no-]status         hide status prefix
> +   -C --[no-]copies         show source of copied files
> +   -0 --[no-]print0         end filenames with NUL, for use with xargs
>        --rev REV [+]         show difference from revision
>        --change REV          list the changed files of a revision
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -S --subrepos            recurse into subrepositories
> +   -S --[no-]subrepos       recurse into subrepositories
>
>    (some details hidden, use --verbose to show complete help)
>
> @@ -717,7 +717,7 @@ Test for aliases
>
>    options:
>
> -    --remote check for push and pull
> +    --[no-]remote check for push and pull
>
>    (some details hidden, use --verbose to show complete help)
>
> @@ -743,7 +743,7 @@ Test command with no help text
>
>        --longdesc VALUE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>                         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (default: 3)
> -   -n --               normal desc
> +   -n --[no-]          normal desc
>        --newline VALUE  line1 line2
>
>    (some details hidden, use --verbose to show complete help)
> @@ -1128,9 +1128,9 @@ test deprecated and experimental options
>
>  test deprecated and experimental options is shown with -v
>    $ hg help -v debugoptDEP | grep dopt
> -    --dopt option is (DEPRECATED)
> +    --[no-]dopt option is (DEPRECATED)
>    $ hg help -v debugoptEXP | grep eopt
> -    --eopt option is (EXPERIMENTAL)
> +    --[no-]eopt option is (EXPERIMENTAL)
>
>  #if gettext
>  test deprecated option is hidden with translation with untranslated description
> @@ -2474,10 +2474,10 @@ Dish up an empty repo; serve it cold.
>    <td>--exclude PATTERN [+]</td>
>    <td>exclude names matching the given patterns</td></tr>
>    <tr><td>-S</td>
> -  <td>--subrepos</td>
> +  <td>--[no-]subrepos</td>
>    <td>recurse into subrepositories</td></tr>
>    <tr><td>-n</td>
> -  <td>--dry-run</td>
> +  <td>--[no-]dry-run</td>
>    <td>do not perform actions, just print output</td></tr>
>    </table>
>    <p>
> @@ -2494,19 +2494,19 @@ Dish up an empty repo; serve it cold.
>    <td>--noninteractive</td>
>    <td>do not prompt, automatically pick the first choice for all prompts</td></tr>
>    <tr><td>-q</td>
> -  <td>--quiet</td>
> +  <td>--[no-]quiet</td>
>    <td>suppress output</td></tr>
>    <tr><td>-v</td>
> -  <td>--verbose</td>
> +  <td>--[no-]verbose</td>
>    <td>enable additional output</td></tr>
>    <tr><td></td>
>    <td>--config CONFIG [+]</td>
>    <td>set/override config option (use 'section.name=value')</td></tr>
>    <tr><td></td>
> -  <td>--debug</td>
> +  <td>--[no-]debug</td>
>    <td>enable debugging output</td></tr>
>    <tr><td></td>
> -  <td>--debugger</td>
> +  <td>--[no-]debugger</td>
>    <td>start debugger</td></tr>
>    <tr><td></td>
>    <td>--encoding ENCODE</td>
> @@ -2515,13 +2515,13 @@ Dish up an empty repo; serve it cold.
>    <td>--encodingmode MODE</td>
>    <td>set the charset encoding mode (default: strict)</td></tr>
>    <tr><td></td>
> -  <td>--traceback</td>
> +  <td>--[no-]traceback</td>
>    <td>always print a traceback on exception</td></tr>
>    <tr><td></td>
> -  <td>--time</td>
> +  <td>--[no-]time</td>
>    <td>time how long the command takes</td></tr>
>    <tr><td></td>
> -  <td>--profile</td>
> +  <td>--[no-]profile</td>
>    <td>print command execution profile</td></tr>
>    <tr><td></td>
>    <td>--version</td>
> @@ -2530,7 +2530,7 @@ Dish up an empty repo; serve it cold.
>    <td>--help</td>
>    <td>display help and exit</td></tr>
>    <tr><td></td>
> -  <td>--hidden</td>
> +  <td>--[no-]hidden</td>
>    <td>consider hidden changesets</td></tr>
>    </table>
>
> @@ -2661,13 +2661,13 @@ Dish up an empty repo; serve it cold.
>    </p>
>    <table>
>    <tr><td>-A</td>
> -  <td>--after</td>
> +  <td>--[no-]after</td>
>    <td>record delete for missing files</td></tr>
>    <tr><td>-f</td>
> -  <td>--force</td>
> +  <td>--[no-]force</td>
>    <td>forget added files, delete modified files</td></tr>
>    <tr><td>-S</td>
> -  <td>--subrepos</td>
> +  <td>--[no-]subrepos</td>
>    <td>recurse into subrepositories</td></tr>
>    <tr><td>-I</td>
>    <td>--include PATTERN [+]</td>
> @@ -2690,19 +2690,19 @@ Dish up an empty repo; serve it cold.
>    <td>--noninteractive</td>
>    <td>do not prompt, automatically pick the first choice for all prompts</td></tr>
>    <tr><td>-q</td>
> -  <td>--quiet</td>
> +  <td>--[no-]quiet</td>
>    <td>suppress output</td></tr>
>    <tr><td>-v</td>
> -  <td>--verbose</td>
> +  <td>--[no-]verbose</td>
>    <td>enable additional output</td></tr>
>    <tr><td></td>
>    <td>--config CONFIG [+]</td>
>    <td>set/override config option (use 'section.name=value')</td></tr>
>    <tr><td></td>
> -  <td>--debug</td>
> +  <td>--[no-]debug</td>
>    <td>enable debugging output</td></tr>
>    <tr><td></td>
> -  <td>--debugger</td>
> +  <td>--[no-]debugger</td>
>    <td>start debugger</td></tr>
>    <tr><td></td>
>    <td>--encoding ENCODE</td>
> @@ -2711,13 +2711,13 @@ Dish up an empty repo; serve it cold.
>    <td>--encodingmode MODE</td>
>    <td>set the charset encoding mode (default: strict)</td></tr>
>    <tr><td></td>
> -  <td>--traceback</td>
> +  <td>--[no-]traceback</td>
>    <td>always print a traceback on exception</td></tr>
>    <tr><td></td>
> -  <td>--time</td>
> +  <td>--[no-]time</td>
>    <td>time how long the command takes</td></tr>
>    <tr><td></td>
> -  <td>--profile</td>
> +  <td>--[no-]profile</td>
>    <td>print command execution profile</td></tr>
>    <tr><td></td>
>    <td>--version</td>
> @@ -2726,7 +2726,7 @@ Dish up an empty repo; serve it cold.
>    <td>--help</td>
>    <td>display help and exit</td></tr>
>    <tr><td></td>
> -  <td>--hidden</td>
> +  <td>--[no-]hidden</td>
>    <td>consider hidden changesets</td></tr>
>    </table>
>
> diff --git a/tests/test-mq-qrefresh-interactive.t b/tests/test-mq-qrefresh-interactive.t
> --- a/tests/test-mq-qrefresh-interactive.t
> +++ b/tests/test-mq-qrefresh-interactive.t
> @@ -31,13 +31,13 @@ help qrefresh (no record)
>
>    options ([+] can be repeated):
>
> -   -e --edit                invoke editor on commit messages
> -   -g --git                 use git extended diff format
> -   -s --short               refresh only files already in the patch and
> +   -e --[no-]edit           invoke editor on commit messages
> +   -g --[no-]git            use git extended diff format
> +   -s --[no-]short          refresh only files already in the patch and
>                              specified files
> -   -U --currentuser         add/update author field in patch with current user
> +   -U --[no-]currentuser    add/update author field in patch with current user
>     -u --user USER           add/update author field in patch with given user
> -   -D --currentdate         add/update date field in patch with current date
> +   -D --[no-]currentdate    add/update date field in patch with current date
>     -d --date DATE           add/update date field in patch with given date
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
> @@ -73,19 +73,19 @@ help qrefresh (record)
>
>    options ([+] can be repeated):
>
> -   -e --edit                invoke editor on commit messages
> -   -g --git                 use git extended diff format
> -   -s --short               refresh only files already in the patch and
> +   -e --[no-]edit           invoke editor on commit messages
> +   -g --[no-]git            use git extended diff format
> +   -s --[no-]short          refresh only files already in the patch and
>                              specified files
> -   -U --currentuser         add/update author field in patch with current user
> +   -U --[no-]currentuser    add/update author field in patch with current user
>     -u --user USER           add/update author field in patch with given user
> -   -D --currentdate         add/update date field in patch with current date
> +   -D --[no-]currentdate    add/update date field in patch with current date
>     -d --date DATE           add/update date field in patch with given date
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
>     -m --message TEXT        use text as commit message
>     -l --logfile FILE        read commit message from file
> -   -i --interactive         interactively select changes to refresh
> +   -i --[no-]interactive    interactively select changes to refresh
>
>    (some details hidden, use --verbose to show complete help)
>
> diff --git a/tests/test-qrecord.t b/tests/test-qrecord.t
> --- a/tests/test-qrecord.t
> +++ b/tests/test-qrecord.t
> @@ -59,22 +59,22 @@ help record (record)
>
>    options ([+] can be repeated):
>
> -   -A --addremove           mark new/missing files as added/removed before
> -                            committing
> -      --close-branch        mark a branch head as closed
> -      --amend               amend the parent of the working directory
> -   -s --secret              use the secret phase for committing
> -   -e --edit                invoke editor on commit messages
> -   -I --include PATTERN [+] include names matching the given patterns
> -   -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -m --message TEXT        use text as commit message
> -   -l --logfile FILE        read commit message from file
> -   -d --date DATE           record the specified date as commit date
> -   -u --user USER           record the specified user as committer
> -   -S --subrepos            recurse into subrepositories
> -   -w --ignore-all-space    ignore white space when comparing lines
> -   -b --ignore-space-change ignore changes in the amount of white space
> -   -B --ignore-blank-lines  ignore changes whose lines are all blank
> +   -A --[no-]addremove           mark new/missing files as added/removed before
> +                                 committing
> +      --[no-]close-branch        mark a branch head as closed
> +      --[no-]amend               amend the parent of the working directory
> +   -s --[no-]secret              use the secret phase for committing
> +   -e --[no-]edit                invoke editor on commit messages
> +   -I --include PATTERN [+]      include names matching the given patterns
> +   -X --exclude PATTERN [+]      exclude names matching the given patterns
> +   -m --message TEXT             use text as commit message
> +   -l --logfile FILE             read commit message from file
> +   -d --date DATE                record the specified date as commit date
> +   -u --user USER                record the specified user as committer
> +   -S --[no-]subrepos            recurse into subrepositories
> +   -w --[no-]ignore-all-space    ignore white space when comparing lines
> +   -b --[no-]ignore-space-change ignore changes in the amount of white space
> +   -B --[no-]ignore-blank-lines  ignore changes whose lines are all blank
>
>    (some details hidden, use --verbose to show complete help)
>
> @@ -135,20 +135,20 @@ help (mq present)
>
>    options ([+] can be repeated):
>
> -   -e --edit                invoke editor on commit messages
> -   -g --git                 use git extended diff format
> -   -U --currentuser         add "From: <current user>" to patch
> -   -u --user USER           add "From: <USER>" to patch
> -   -D --currentdate         add "Date: <current date>" to patch
> -   -d --date DATE           add "Date: <DATE>" to patch
> -   -I --include PATTERN [+] include names matching the given patterns
> -   -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -m --message TEXT        use text as commit message
> -   -l --logfile FILE        read commit message from file
> -   -w --ignore-all-space    ignore white space when comparing lines
> -   -b --ignore-space-change ignore changes in the amount of white space
> -   -B --ignore-blank-lines  ignore changes whose lines are all blank
> -      --mq                  operate on patch repository
> +   -e --[no-]edit                invoke editor on commit messages
> +   -g --[no-]git                 use git extended diff format
> +   -U --[no-]currentuser         add "From: <current user>" to patch
> +   -u --user USER                add "From: <USER>" to patch
> +   -D --[no-]currentdate         add "Date: <current date>" to patch
> +   -d --date DATE                add "Date: <DATE>" to patch
> +   -I --include PATTERN [+]      include names matching the given patterns
> +   -X --exclude PATTERN [+]      exclude names matching the given patterns
> +   -m --message TEXT             use text as commit message
> +   -l --logfile FILE             read commit message from file
> +   -w --[no-]ignore-all-space    ignore white space when comparing lines
> +   -b --[no-]ignore-space-change ignore changes in the amount of white space
> +   -B --[no-]ignore-blank-lines  ignore changes whose lines are all blank
> +      --[no-]mq                  operate on patch repository
>
>    (some details hidden, use --verbose to show complete help)
>
> diff --git a/tests/test-record.t b/tests/test-record.t
> --- a/tests/test-record.t
> +++ b/tests/test-record.t
> @@ -45,22 +45,22 @@ Record help
>
>    options ([+] can be repeated):
>
> -   -A --addremove           mark new/missing files as added/removed before
> -                            committing
> -      --close-branch        mark a branch head as closed
> -      --amend               amend the parent of the working directory
> -   -s --secret              use the secret phase for committing
> -   -e --edit                invoke editor on commit messages
> -   -I --include PATTERN [+] include names matching the given patterns
> -   -X --exclude PATTERN [+] exclude names matching the given patterns
> -   -m --message TEXT        use text as commit message
> -   -l --logfile FILE        read commit message from file
> -   -d --date DATE           record the specified date as commit date
> -   -u --user USER           record the specified user as committer
> -   -S --subrepos            recurse into subrepositories
> -   -w --ignore-all-space    ignore white space when comparing lines
> -   -b --ignore-space-change ignore changes in the amount of white space
> -   -B --ignore-blank-lines  ignore changes whose lines are all blank
> +   -A --[no-]addremove           mark new/missing files as added/removed before
> +                                 committing
> +      --[no-]close-branch        mark a branch head as closed
> +      --[no-]amend               amend the parent of the working directory
> +   -s --[no-]secret              use the secret phase for committing
> +   -e --[no-]edit                invoke editor on commit messages
> +   -I --include PATTERN [+]      include names matching the given patterns
> +   -X --exclude PATTERN [+]      exclude names matching the given patterns
> +   -m --message TEXT             use text as commit message
> +   -l --logfile FILE             read commit message from file
> +   -d --date DATE                record the specified date as commit date
> +   -u --user USER                record the specified user as committer
> +   -S --[no-]subrepos            recurse into subrepositories
> +   -w --[no-]ignore-all-space    ignore white space when comparing lines
> +   -b --[no-]ignore-space-change ignore changes in the amount of white space
> +   -B --[no-]ignore-blank-lines  ignore changes whose lines are all blank
>
>    (some details hidden, use --verbose to show complete help)
>
> diff --git a/tests/test-shelve.t b/tests/test-shelve.t
> --- a/tests/test-shelve.t
> +++ b/tests/test-shelve.t
> @@ -58,22 +58,22 @@ shelve has a help message
>
>    options ([+] can be repeated):
>
> -   -A --addremove           mark new/missing files as added/removed before
> +   -A --[no-]addremove      mark new/missing files as added/removed before
>                              shelving
> -   -u --unknown             store unknown files in the shelve
> -      --cleanup             delete all shelved changes
> +   -u --[no-]unknown        store unknown files in the shelve
> +      --[no-]cleanup        delete all shelved changes
>        --date DATE           shelve with the specified commit date
> -   -d --delete              delete the named shelved change(s)
> -   -e --edit                invoke editor on commit messages
> -   -l --list                list current shelves
> +   -d --[no-]delete         delete the named shelved change(s)
> +   -e --[no-]edit           invoke editor on commit messages
> +   -l --[no-]list           list current shelves
>     -m --message TEXT        use text as shelve message
>     -n --name NAME           use the given name for the shelved commit
> -   -p --patch               show patch
> -   -i --interactive         interactive mode, only works while creating a shelve
> -      --stat                output diffstat-style summary of changes
> +   -p --[no-]patch          show patch
> +   -i --[no-]interactive    interactive mode, only works while creating a shelve
> +      --[no-]stat           output diffstat-style summary of changes
>     -I --include PATTERN [+] include names matching the given patterns
>     -X --exclude PATTERN [+] exclude names matching the given patterns
> -      --mq                  operate on patch repository
> +      --[no-]mq             operate on patch repository
>
>    (some details hidden, use --verbose to show complete help)
>
> diff --git a/tests/test-strip.t b/tests/test-strip.t
> --- a/tests/test-strip.t
> +++ b/tests/test-strip.t
> @@ -710,12 +710,12 @@ Make sure no one adds back a -b option:
>
>     -r --rev REV [+]        strip specified revision (optional, can specify
>                             revisions without this option)
> -   -f --force              force removal of changesets, discard uncommitted
> +   -f --[no-]force         force removal of changesets, discard uncommitted
>                             changes (no backup)
> -      --no-backup          no backups
> -   -k --keep               do not modify working directory during strip
> +      --[no-]backup        no backups
> +   -k --[no-]keep          do not modify working directory during strip
>     -B --bookmark VALUE [+] remove revs only reachable from given bookmark
> -      --mq                 operate on patch repository
> +      --[no-]mq            operate on patch repository
>
>    (use 'hg strip -h' to show more help)
>    [255]
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel



More information about the Mercurial-devel mailing list