--- a/contrib/check-config.py Fri Jun 30 03:28:02 2017 +0200
+++ b/contrib/check-config.py Sat Jul 01 20:34:27 2017 -0700
@@ -13,6 +13,7 @@
foundopts = {}
documented = {}
+allowinconsistent = set()
configre = re.compile(r'''
# Function call
@@ -36,6 +37,11 @@
configpartialre = (r"""ui\.config""")
+ignorere = re.compile(r'''
+ \#\s(?P<reason>internal|experimental|deprecated|developer|inconsistent)\s
+ config:\s(?P<config>\S+\.\S+)$
+ ''', re.VERBOSE | re.MULTILINE)
+
def main(args):
for f in args:
sect = ''
@@ -82,10 +88,12 @@
documented[m.group(1)] = 1
# look for ignore markers
- m = re.search(r'# (?:internal|experimental|deprecated|developer)'
- ' config: (\S+\.\S+)$', l)
+ m = ignorere.search(l)
if m:
- documented[m.group(1)] = 1
+ if m.group('reason') == 'inconsistent':
+ allowinconsistent.add(m.group('config'))
+ else:
+ documented[m.group('config')] = 1
# look for code-like bits
line = carryover + l
@@ -100,7 +108,8 @@
default = ''
if re.match('[a-z.]+$', default):
default = '<variable>'
- if name in foundopts and (ctype, default) != foundopts[name]:
+ if (name in foundopts and (ctype, default) != foundopts[name]
+ and name not in allowinconsistent):
print(l)
print("conflict on %s: %r != %r" % (name, (ctype, default),
foundopts[name]))