help: show "[no-]" only for default-on Flags
ClosedPublic

Authored by martinvonz on Dec 19 2018, 11:50 AM.

Details

Summary

As Anton (av6) pointed out, the "[no-]" is confusing for action flags
like hg bookmark --delete. We could come up with a way of indicating
which flags are action flags (e.g. use None for the default value
instead of False). However, it's probably also unlikely that users
will want to negate even non-action flags like --hidden.

One of the more common flags where the "[no-]" prefix would be useful
is hg evolve --update. The reason it's helpful there is that it
defaults to on. So I think we can simply include "[no-]" only for
flags that are on by default (and thus require the user to add the
"[no-]" for the option to have any effect).

Note that there are use cases for negating flags that already off by
default. For example, you may have an alias for `hg log -G --hidden -T
foo` and now want to pass "--no-hidden" to that alias. However, I
think that users who want that are likely to be advanced enough that
they've already learnt about the "no-" prefix by seeing it somewhere
else.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
martinvonz created this revision.Dec 19 2018, 11:50 AM
martinvonz edited the summary of this revision. (Show Details)
martinvonz retitled this revision from help: hide default value for boolean flag and show "[no-]" only for default-on to help: "[no-]" only for default-on Flags.
martinvonz retitled this revision from help: "[no-]" only for default-on Flags to help: show "[no-]" only for default-on Flags.Dec 19 2018, 12:46 PM
av6 accepted this revision.Dec 20 2018, 6:21 AM
This revision is now accepted and ready to land.Dec 20 2018, 6:21 AM
This revision was automatically updated to reflect the committed changes.