fix: fix registration of config item defaults
authorMartin von Zweigbergk <martinvonz@google.com>
Sat, 12 Oct 2019 11:13:55 -0700
changeset 43217 5cb3e6f4e069
parent 43216 6a350194de7f
child 43218 f4c1fd6addd5
fix: fix registration of config item defaults Before this patch, because of the "(:<name>)?", all registered patterns would match and the default value would not be the one we thought we had registered (maybe it just took the default value for the first match?). This didn't matter because we didn't care about the default value; we used our own, intended default value in getfixers() anyway. We also have to look up each config item individually in order to not get developer warnings. Differential Revision: https://phab.mercurial-scm.org/D7082
hgext/fix.py
--- a/hgext/fix.py	Sat Oct 12 12:41:53 2019 -0700
+++ b/hgext/fix.py	Sat Oct 12 11:13:55 2019 -0700
@@ -178,7 +178,7 @@
 }
 
 for key, default in FIXER_ATTRS.items():
-    configitem(b'fix', b'.*(:%s)?' % key, default=default, generic=True)
+    configitem(b'fix', b'.*:%s$' % key, default=default, generic=True)
 
 # A good default size allows most source code files to be fixed, but avoids
 # letting fixer tools choke on huge inputs, which could be surprising to the
@@ -794,12 +794,11 @@
     fixers = {}
     for name in fixernames(ui):
         fixers[name] = Fixer()
-        attrs = ui.configsuboptions(b'fix', name)[1]
         for key, default in FIXER_ATTRS.items():
             setattr(
                 fixers[name],
                 pycompat.sysstr(b'_' + key),
-                attrs.get(key, default),
+                ui.config(b'fix', name + b':' + key, default),
             )
         fixers[name]._priority = int(fixers[name]._priority)
         fixers[name]._metadata = stringutil.parsebool(fixers[name]._metadata)