fix: correctly parse the :metadata subconfig
It's being handled as a string instead of a bool, though the thruthiness of the
string makes the feature still essentially work. Added a regression test.
Differential Revision: https://phab.mercurial-scm.org/D6726
--- a/hgext/fix.py Mon Aug 12 16:39:39 2019 -0700
+++ b/hgext/fix.py Tue Aug 13 14:20:48 2019 -0700
@@ -171,7 +171,7 @@
'linerange': None,
'pattern': None,
'priority': 0,
- 'metadata': False,
+ 'metadata': 'false',
'skipclean': 'true',
}
@@ -724,6 +724,7 @@
setattr(fixers[name], pycompat.sysstr('_' + key),
attrs.get(key, default))
fixers[name]._priority = int(fixers[name]._priority)
+ fixers[name]._metadata = stringutil.parsebool(fixers[name]._metadata)
fixers[name]._skipclean = stringutil.parsebool(fixers[name]._skipclean)
# Don't use a fixer if it has no pattern configured. It would be
# dangerous to let it affect all files. It would be pointless to let it
--- a/tests/test-fix-metadata.t Mon Aug 12 16:39:39 2019 -0700
+++ b/tests/test-fix-metadata.t Tue Aug 13 14:20:48 2019 -0700
@@ -43,6 +43,9 @@
> [extensions]
> fix =
> [fix]
+ > metadatafalse:command=cat $TESTTMP/missing
+ > metadatafalse:pattern=metadatafalse
+ > metadatafalse:metadata=false
> missing:command=cat $TESTTMP/missing
> missing:pattern=missing
> missing:metadata=true
@@ -65,6 +68,7 @@
$ hg init repo
$ cd repo
+ $ printf "old content\n" > metadatafalse
$ printf "old content\n" > invalid
$ printf "old content\n" > missing
$ printf "old content\n" > valid
@@ -72,15 +76,20 @@
$ hg fix -w
ignored invalid output from fixer tool: invalid
+ fixed metadatafalse in revision 2147483647 using metadatafalse
ignored invalid output from fixer tool: missing
fixed valid in revision 2147483647 using valid
saw "key" 1 times
fixed 1 files with valid
fixed the working copy
- $ cat missing invalid valid
+ $ cat metadatafalse
+ new content
+ $ cat missing
old content
+ $ cat invalid
old content
+ $ cat valid
new content
$ cd ..