fix: correctly parse the :metadata subconfig
authorDanny Hooper <hooper@google.com>
Tue, 13 Aug 2019 14:20:48 -0700
changeset 42757 2d70b1118af2
parent 42756 ed0da6e0d6ee
child 42758 e9f503074044
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
hgext/fix.py
tests/test-fix-metadata.t
--- 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 ..