diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -1066,7 +1066,9 @@ def showconfig(ui, repo, *values, **opts ui.debug(_('read config from: %s\n') % f) untrusted = bool(opts.get('untrusted')) if values: - if len([v for v in values if '.' in v]) > 1: + sections = [v for v in values if '.' not in v] + items = [v for v in values if '.' in v] + if len(items) > 1 or items and sections: raise util.Abort(_('only one config item permitted')) for section, name, value in ui.walkconfig(untrusted=untrusted): sectname = section + '.' + name diff --git a/tests/test-hgrc.t b/tests/test-hgrc.t --- a/tests/test-hgrc.t +++ b/tests/test-hgrc.t @@ -75,6 +75,22 @@ username expansion $ HGUSER=$olduser $ export HGUSER +showconfig with multiple arguments + + $ echo "[alias]" > $HGRCPATH + $ echo "log = log -g" >> $HGRCPATH + $ echo "[defaults]" >> $HGRCPATH + $ echo "identify = -n" >> $HGRCPATH + $ hg showconfig alias defaults + alias.log=log -g + defaults.identify=-n + $ hg showconfig alias defaults.identify + abort: only one config item permitted + [255] + $ hg showconfig alias.log defaults.identify + abort: only one config item permitted + [255] + HGPLAIN $ cd ..