[PATCH stable] config: exit non zero on non-existent config option (issue4247)
Aaron Kushner
akushner at fb.com
Fri Aug 29 15:31:03 UTC 2014
# HG changeset patch
# User Aaron Kushner <akushner at fb.com>
# Date 1408492622 25200
# Tue Aug 19 16:57:02 2014 -0700
# Node ID 9d865f06d498d809ce83e3315892fbf5d6a6ffc7
# Parent bdc0e04df243d3995c7266bf7d138fddd0449ba6
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 --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -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 = 0
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 += 1
elif v == sectname:
ui.debug('%s: ' %
ui.configsource(section, name, untrusted))
ui.write(value, '\n')
+ matched += 1
else:
ui.debug('%s: ' %
ui.configsource(section, name, untrusted))
ui.write('%s=%s\n' % (sectname, value))
+ matched += 1
+ if matched:
+ return 0
+ return 1
@command('copy|cp',
[('A', 'after', None, _('record a copy that has already occurred')),
diff --git a/tests/test-config.t b/tests/test-config.t
--- a/tests/test-config.t
+++ b/tests/test-config.t
@@ -83,3 +83,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 --git a/tests/test-lfconvert.t b/tests/test-lfconvert.t
--- a/tests/test-lfconvert.t
+++ b/tests/test-lfconvert.t
@@ -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)
More information about the Mercurial-devel
mailing list