changeset 43217:5cb3e6f4e069

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
author Martin von Zweigbergk <martinvonz@google.com>
date Sat, 12 Oct 2019 11:13:55 -0700
parents 6a350194de7f
children f4c1fd6addd5
files hgext/fix.py
diffstat 1 files changed, 2 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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)