config: don't set source when no source is specified - don't overwrite with ''
authorMads Kiilerich <madski@unity3d.com>
Wed, 19 Mar 2014 02:45:14 +0100
changeset 20789 d19c9bdbbf35
parent 20788 f144928dd058
child 20790 49f2d5644f04
config: don't set source when no source is specified - don't overwrite with '' This prevents ui.fixconfig from overwriting the source of paths and it will thus show up in showconfig --debug.
mercurial/config.py
tests/test-hgrc.t
--- a/mercurial/config.py	Wed Mar 19 02:45:04 2014 +0100
+++ b/mercurial/config.py	Wed Mar 19 02:45:14 2014 +0100
@@ -93,7 +93,8 @@
         if section not in self:
             self._data[section] = sortdict()
         self._data[section][item] = value
-        self._source[(section, item)] = source
+        if source:
+            self._source[(section, item)] = source
 
     def restore(self, data):
         """restore data returned by self.backup"""
--- a/tests/test-hgrc.t	Wed Mar 19 02:45:04 2014 +0100
+++ b/tests/test-hgrc.t	Wed Mar 19 02:45:14 2014 +0100
@@ -201,3 +201,14 @@
   --verbose: ui.verbose=False
   --debug: ui.debug=True
   --quiet: ui.quiet=False
+
+source of paths is not mangled
+
+  $ cat >> $HGRCPATH <<EOF
+  > [paths]
+  > foo = bar
+  > EOF
+  $ hg showconfig --debug paths
+  plain: True
+  read config from: $TESTTMP/hgrc
+  $TESTTMP/hgrc:17: paths.foo=$TESTTMP/bar