diff mercurial/config.py @ 10042:7cdd2a7db2c2 stable

config: raise ConfigError on non-existing include files Before, an %include directive for a non-existing file resulted in an IOError and a traceback.
author Martin Geisler <mg@lazybytes.net>
date Sat, 12 Dec 2009 16:46:16 +0100
parents bccf780f78ed
children 25e572394f5c
line wrap: on
line diff
--- a/mercurial/config.py	Thu Dec 10 12:31:21 2009 +0100
+++ b/mercurial/config.py	Sat Dec 12 16:46:16 2009 +0100
@@ -100,7 +100,13 @@
                 base = os.path.dirname(src)
                 inc = os.path.normpath(os.path.join(base, inc))
                 if include:
-                    include(inc, remap=remap, sections=sections)
+                    try:
+                        include(inc, remap=remap, sections=sections)
+                    except IOError, inst:
+                        msg = _("config error at %s:%d: "
+                                "cannot include %s (%s)") \
+                            % (src, line, inc, inst.strerror)
+                        raise error.ConfigError(msg)
                 continue
             if emptyre.match(l):
                 continue