[PATCH 1 of 4] config: don't read the same config file twice

Mads Kiilerich mads at kiilerich.com
Wed Sep 24 20:33:02 CDT 2014


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1409859395 -7200
#      Thu Sep 04 21:36:35 2014 +0200
# Node ID e04d746df4b9a7c5ef32b0bf70284e3dd8402791
# Parent  fa3181323c0aa9b2d2c2f81a7d68d57bd3a7a515
config: don't read the same config file twice

In some cases some config files would be read twice and shown twice in
showconfig --debug.

diff --git a/mercurial/scmposix.py b/mercurial/scmposix.py
--- a/mercurial/scmposix.py
+++ b/mercurial/scmposix.py
@@ -21,7 +21,8 @@ def systemrcpath():
     # old mod_python does not set sys.argv
     if len(getattr(sys, 'argv', [])) > 0:
         p = os.path.dirname(os.path.dirname(sys.argv[0]))
-        path.extend(_rcfiles(os.path.join(p, root)))
+        if p != '/':
+            path.extend(_rcfiles(os.path.join(p, root)))
     path.extend(_rcfiles('/' + root))
     return path
 
diff --git a/mercurial/scmwindows.py b/mercurial/scmwindows.py
--- a/mercurial/scmwindows.py
+++ b/mercurial/scmwindows.py
@@ -40,7 +40,7 @@ def userrcpath():
     path = [os.path.join(home, 'mercurial.ini'),
             os.path.join(home, '.hgrc')]
     userprofile = os.environ.get('USERPROFILE')
-    if userprofile:
+    if userprofile and userprofile != home:
         path.append(os.path.join(userprofile, 'mercurial.ini'))
         path.append(os.path.join(userprofile, '.hgrc'))
     return path


More information about the Mercurial-devel mailing list