diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2269,6 +2269,10 @@ def config(ui, repo, *values, **opts): fm.write(b'name value', b'%s=%s\n', entryname, value) if formatter.isprintable(defaultvalue): fm.data(defaultvalue=defaultvalue) + elif isinstance(defaultvalue, list) and all( + formatter.isprintable(e) for e in defaultvalue + ): + fm.data(defaultvalue=fm.formatlist(defaultvalue, name=b'value')) # TODO: no idea how to process unsupported defaultvalue types matched = True fm.end() diff --git a/tests/test-config.t b/tests/test-config.t --- a/tests/test-config.t +++ b/tests/test-config.t @@ -186,6 +186,7 @@ Test config default of various types: $ hg config --config commands.show.aliasprefix= commands -Tjson [ { + "defaultvalue": [], "name": "commands.show.aliasprefix", "source": "--config", "value": "" @@ -193,7 +194,7 @@ Test config default of various types: ] $ hg config --config commands.show.aliasprefix= commands -T'json(defaultvalue)' [ - {"defaultvalue": ""} + {"defaultvalue": []} ] $ hg config --config commands.show.aliasprefix= commands -T'{defaultvalue}\n' @@ -203,6 +204,7 @@ Test config default of various types: $ hg config --config progress.format= progress -Tjson [ { + "defaultvalue": ["topic", "bar", "number", "estimate"], "name": "progress.format", "source": "--config", "value": "" @@ -210,10 +212,10 @@ Test config default of various types: ] $ hg config --config progress.format= progress -T'json(defaultvalue)' [ - {"defaultvalue": ""} + {"defaultvalue": ["topic", "bar", "number", "estimate"]} ] $ hg config --config progress.format= progress -T'{defaultvalue}\n' - + topic bar number estimate int