Standardizing config option naming

Matt Mackall mpm at selenic.com
Wed Aug 10 16:54:22 CDT 2011


So we've been fairly inconsistent with naming config options. It's time
to lay down the law here. And based on existing usage, the law should
be: no separator on new options.

(My favorite is this one: web.allow_push vs web.allowpull)

We should probably figure out how to normalize the existing options in a
backward-compatible way. This means removing the separators from the
docs and adding some sort of compatibility fallback for the old option
names. Though we need to be aware of conflicts like
'hooks.premerge' (standard merge hook) vs 'hooks.pre-merge' (generic
command hook).


$ egrep '^``[^ ]+``$' config.txt | wc
    155     155    1977

dash separator (5): almost all section names and generics
``merge-patterns``
``merge-tools``
``post-<command>``
``pre-<command>``
``default-push`` <- one of the oldest config options

underbar separator (9): mostly hgweb and acl options
``http_proxy``
``local_hostname``
``report_untrusted``
``allow_archive``
``allow_push``
``allow_read``
``deny_push``
``deny_read``
``push_ssl``

no separator (~51):
``nodates``
``showfunc``
``ignorews``
``ignorewsamount``
``ignoreblanklines``
``hostfingerprints``
``usestore``
``usefncache``
``dotencode``
``premerge``
``checkchanged``
``checkconflicts``
``fixeol``
``regkey``
``regkeyalt``
``regname``
``regappend``
``prechangegroup``
``precommit``
``prelistkeys``
``preoutgoing``
``prepushkey``
``pretag``
``pretxnchangegroup``
``pretxncommit``
``preupdate``
``listkeys``
``pushkey``
``revsetalias``
``subpaths``
``archivemeta``
``askusername``
``commitsubrepos``
``fallbackencoding``
``logtemplate``
``portablefilenames``
``remotecmd``
``accesslog``
``allowbz2``
``allowgz``
``allowpull``
``guessmime``
``allowzip``
``baseurl``
``cacerts``
``errorlog``
``logoimg``
``logourl``
``maxchanges``
``maxfiles``
``staticurl``

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list