https://bz.mercurial-scm.org/show_bug.cgi?id=6014

            Bug ID: 6014
           Summary: hg showconfig --give-me-default-value and
                    --give-me-current-value-even-if-it-is-the-default
           Product: Mercurial
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzi...@mercurial-scm.org
          Reporter: a...@dwimlabs.net
                CC: mercurial-devel@mercurial-scm.org

Looking at such tools as postconf (postfix) and doveconf (dovecot) and
comparing how they work with hg showconfig, one flaw in the latter is obvious:
it cannot be reliably used to just get the current setting. For example, when
user doesn't set ui.color anywhere in config files, the default value for it is
'auto' (configitems.py). But `hg showconfig ui.color` outputs nothing, IOW an
empty string, and not 'auto'.

If a script (e.g. shell prompt or completion file) decides to peek at certain
config values (they don't have to be related to color, of course), it will need
to know to substitute empty results from `hg showconfig` for a default value...
and there's also no way to get that default value lest it parses
mercurial/configitems.py.

What do the config tools from postfix and dovecot do then? Here are some flags
from their man pages:

> postconf: -d  print default parameter settings instead of actual settings
>           -n  Show only configuration parameters that have explicit 
> name=value settings

> doveconf: -n  Show only settings with non-default values. [*]

Maybe showconfig could grow similar flags (names bikesheddable): -d/--default
to print default value and -a/--any for any value, including default. Or maybe
it's worth a BC to make `hg showconfig foo` print value of foo even if it's not
configured anywhere explicitly.

[*] doveconf is actually used to parse config files and feed the results to the
rest of the dovecot system, so printing all possible key=value by default pairs
makes perfect sense. Not the case of hg showconfig, but still.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to