[PATCH 3 of 4] config: don't set source when no source is specified - don't overwrite with ''

Mads Kiilerich mads at kiilerich.com
Tue Mar 18 20:45:25 CDT 2014


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1395193514 -3600
#      Wed Mar 19 02:45:14 2014 +0100
# Node ID aecee5b4ae61ae98a138583c63ce03a9e82084f0
# Parent  b9673d596335044e9cb7b1814c895e8a83bc10d4
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.

diff --git a/mercurial/config.py b/mercurial/config.py
--- a/mercurial/config.py
+++ b/mercurial/config.py
@@ -93,7 +93,8 @@ class config(object):
         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"""
diff --git a/tests/test-hgrc.t b/tests/test-hgrc.t
--- a/tests/test-hgrc.t
+++ b/tests/test-hgrc.t
@@ -201,3 +201,14 @@ plain mode with exceptions
   --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


More information about the Mercurial-devel mailing list