mercurial/configitems.py
changeset 33133 bf1292c057ef
parent 33132 c467d13334ee
child 33150 77e666f943a6
--- a/mercurial/configitems.py	Sat Jun 17 13:48:20 2017 +0200
+++ b/mercurial/configitems.py	Sun Jun 18 19:52:54 2017 +0200
@@ -16,7 +16,15 @@
 def loadconfigtable(ui, extname, configtable):
     """update config item known to the ui with the extension ones"""
     for section, items in configtable.items():
-        ui._knownconfig.setdefault(section, {}).update(items)
+        knownitems = ui._knownconfig.setdefault(section, {})
+        knownkeys = set(knownitems)
+        newkeys = set(items)
+        for key in sorted(knownkeys & newkeys):
+            msg = "extension '%s' overwrite config item '%s.%s'"
+            msg %= (extname, section, key)
+            ui.develwarn(msg, config='warn-config')
+
+        knownitems.update(items)
 
 class configitem(object):
     """represent a known config item