[PATCH 01 of 10] config: explicitly track the use of the standard default value

Pierre-Yves David pierre-yves.david at ens-lyon.org
Sun Jun 18 14:59:52 EDT 2017


On 06/18/2017 08:55 PM, Pierre-Yves David wrote:
> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at octobus.net>
> # Date 1497696671 -7200
> #      Sat Jun 17 12:51:11 2017 +0200
> # Node ID 5e988d4f834b981d8aaf9d77019550d3800687d5
> # Parent  29558247b00eff8c95c7604032b59cfbab34010d
> # EXP-Topic config.register
> # Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
> #              hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r 5e988d4f834b
> config: explicitly track the use of the standard default value
>
> We introduce a small object used to detect that no specific default value has
> been passed to 'ui.config'. We need this explicit special value since "None" is
> a valid and common default value.
>
> The end goal here is to make progress on a centralised and explicit declaration
> of the available config option. A first good usecase for this are "default"
> value.  Before starting looking further down this alley we needs to rework the
> handling of default value in the 'ui' object to have all configxyz methods going
> through the same logic. This is the first changeset on this trek.

The rest of the series (introducing the config registry) is visible here:

 
https://www.mercurial-scm.org/repo/users/marmoute/mercurial/log?revcount=24&rev=5e988d4f834b%3A%3A8451ff2a0ec5

It does the minimal amount of work to:
* introduce a central registry,
* support reading config item default value from the registry,
* test it for all type of config that used a default,
* allow extension to extend it (cleanly),
* devel warning to catch usage error.

 From here, we will be able to:
* add new types of feature to the registry (alias, documentation, etc)
* register all known options (and add support for the necessary special 
case)

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list