# HG changeset patch # User Aaron Kushner # Date 1408492622 25200 # Node ID 816be4ca4ae2f5c4d4445eeb66ba9a6146db12e4 # Parent 6a8b8efb06418da18aae18597cd11490f93110f2 config: exit non zero on non-existent config option (issue4247) When running 'hg config no_such_option', hg exited with a zero exit code. This change now exits with a 1 if the config option does not exist. diff -r 6a8b8efb0641 -r 816be4ca4ae2 mercurial/commands.py --- a/mercurial/commands.py Sat Aug 30 15:13:02 2014 +0200 +++ b/mercurial/commands.py Tue Aug 19 16:57:02 2014 -0700 @@ -1498,7 +1498,7 @@ See :hg:`help config` for more information about config files. - Returns 0 on success. + Returns 0 on success, 1 if NAME does not exist. """ @@ -1551,6 +1551,7 @@ 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')) + matched = False for section, name, value in ui.walkconfig(untrusted=untrusted): value = str(value).replace('\n', '\\n') sectname = section + '.' + name @@ -1560,14 +1561,20 @@ ui.debug('%s: ' % ui.configsource(section, name, untrusted)) ui.write('%s=%s\n' % (sectname, value)) + matched = True elif v == sectname: ui.debug('%s: ' % ui.configsource(section, name, untrusted)) ui.write(value, '\n') + matched = True else: ui.debug('%s: ' % ui.configsource(section, name, untrusted)) ui.write('%s=%s\n' % (sectname, value)) + matched = True + if matched: + return 0 + return 1 @command('copy|cp', [('A', 'after', None, _('record a copy that has already occurred')), diff -r 6a8b8efb0641 -r 816be4ca4ae2 tests/test-config.t --- a/tests/test-config.t Sat Aug 30 15:13:02 2014 +0200 +++ b/tests/test-config.t Tue Aug 19 16:57:02 2014 -0700 @@ -42,3 +42,8 @@ $ hg showconfig unsettest unsettest.set-after-unset=should be set (.hg/hgrc) + +Test exit code when no config matches + + $ hg config Section.idontexist + [1] diff -r 6a8b8efb0641 -r 816be4ca4ae2 tests/test-lfconvert.t --- a/tests/test-lfconvert.t Sat Aug 30 15:13:02 2014 +0200 +++ b/tests/test-lfconvert.t Tue Aug 19 16:57:02 2014 -0700 @@ -326,6 +326,7 @@ verified existence of 6 revisions of 4 largefiles [1] $ hg -R largefiles-repo-hg showconfig paths + [1] Avoid a traceback if a largefile isn't available (issue3519)