# HG changeset patch # User Danny Hooper # Date 2019-08-13 21:20:48 # Node ID d82e9f7e7440e6ef26ae6827bb2057f01dfb9573 # Parent 69b37b7227f2b9a77b0366b352bcc626dfdcc43e 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 diff --git a/hgext/fix.py b/hgext/fix.py --- a/hgext/fix.py +++ b/hgext/fix.py @@ -171,7 +171,7 @@ FIXER_ATTRS = { 'linerange': None, 'pattern': None, 'priority': 0, - 'metadata': False, + 'metadata': 'false', 'skipclean': 'true', } @@ -724,6 +724,7 @@ def getfixers(ui): 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 diff --git a/tests/test-fix-metadata.t b/tests/test-fix-metadata.t --- a/tests/test-fix-metadata.t +++ b/tests/test-fix-metadata.t @@ -43,6 +43,9 @@ processing phase stable. > [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 @@ some write back to the file. $ 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 @@ some write back to the file. $ 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 ..