[PATCH 3 of 3] commands: add template support for config

Yuya Nishihara yuya at tcha.org
Tue Aug 30 10:09:38 EDT 2016


On Mon, 29 Aug 2016 12:52:43 -0500, Mathias De Maré wrote:
> # HG changeset patch
> # User Mathias De Maré <mathias.demare at gmail.com>
> # Date 1472447235 -7200
> #      Mon Aug 29 07:07:15 2016 +0200
> # Node ID dd7b8ff51af615e1a44d32b103d23e8cd34d5dd9
> # Parent  e348c87b33d73a590bee53b74def915b1ce8c6fe
> commands: add template support for config

> -    for f in scmutil.rcpath():
> -        ui.debug('read config from: %s\n' % f)
> +    fm = ui.formatter('config', opts)
> +    if ui.debugflag:
> +        for f in scmutil.rcpath():
> +            fm.plain('read config from: %s\n' % f)

This is a real debug message. We'll need another workaround, so please keep
it as ui.debug().

https://www.mercurial-scm.org/wiki/GenericTemplatingPlan#Sanity_check_output

> @@ -1859,25 +1861,31 @@
>              raise error.Abort(_('only one config item permitted'))
>      matched = False
>      for section, name, value in ui.walkconfig(untrusted=untrusted):
> -        value = str(value).replace('\n', '\\n')
> -        sectname = section + '.' + name
> +        if fm.isplain():
> +            value = str(value).replace('\n', '\\n')
> +        entryname = section + '.' + name

I think we can always convert value to str because config values should be
strings in the public (i.e. command) API.

> +++ b/tests/test-config.t
> @@ -54,6 +54,20 @@
>    Section.KeY=Case Sensitive
>    Section.key=lower case
>  
> +  $ hg showconfig Section -Tjson
> +  [
> +   {
> +    "name": "Section.KeY",
> +    "source": "*.hgrc:16", (glob)
> +    "value": "Case Sensitive"
> +   },
> +   {
> +    "name": "Section.key",
> +    "source": "*.hgrc:17", (glob)
> +    "value": "lower case"
> +   }
> +  ]

Can you add more tests to cover all "if"s ?


More information about the Mercurial-devel mailing list