diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -1890,7 +1890,12 @@ fm.data(name=entryname) fm.write('value', '%s\n', value) else: - fm.write('name value', '%s=%s\n', entryname, value) + if (opts.get('registered') and + value != pycompat.bytestr(defaultvalue) and ui.debugflag): + fm.write('name value defaultvalue', '%s=%s (default: %s)\n', + entryname, value, pycompat.bytestr(defaultvalue)) + else: + fm.write('name value', '%s=%s\n', entryname, value) matched = True fm.end() if matched: diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -833,6 +833,9 @@ # --verbose is specified. continue value = self._config(section, name, untrusted=untrusted) + if self.debugflag: + if item.experimental or 'experimental' in name: + name = ''.join([name, '(EXPERIMENTAL)']) yield section, name, value def plain(self, feature=None): diff --git a/tests/test-config.t b/tests/test-config.t --- a/tests/test-config.t +++ b/tests/test-config.t @@ -972,3 +972,11 @@ diff.showfunc=False diff.unified=None diff.word-diff=False + + $ hg showconfig --debug --registered | grep 'cmdserver' + none: cmdserver.log=None + none: cmdserver.max-log-files=7 + none: cmdserver.max-log-size=1 MB + none: cmdserver.max-repo-cache(EXPERIMENTAL)=0 (default: None) + none: cmdserver.message-encodings(EXPERIMENTAL)=[] (default: None) + none: cmdserver.track-log=[b'chgserver', b'cmdserver', b'repocache']