From patchwork Sat Oct 5 18:29:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D6975: fix: add :enabled sub-config for fixer tools From: phabricator X-Patchwork-Id: 41993 Message-Id: <62a7d7dbfa726152d40677c2c8c5fae7@localhost.localdomain> To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Sat, 5 Oct 2019 18:29:59 +0000 Closed by commit rHG808a57a08470: fix: add :enabled sub-config for fixer tools (authored by hooper). This revision was automatically updated to reflect the committed changes. This revision was not accepted when it landed; it landed in state "Needs Review". REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D6975?vs=16824&id=16852 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D6975/new/ REVISION DETAIL https://phab.mercurial-scm.org/D6975 AFFECTED FILES hgext/fix.py tests/test-fix.t CHANGE DETAILS To: hooper, #hg-reviewers Cc: mercurial-devel diff --git a/tests/test-fix.t b/tests/test-fix.t --- a/tests/test-fix.t +++ b/tests/test-fix.t @@ -1341,6 +1341,22 @@ $ cd .. +Tools can be disabled. Disabled tools do nothing but print a debug message. + + $ hg init disabled + $ cd disabled + + $ printf "foo\n" > foo + $ hg add -q + $ hg fix --debug --working-dir --config "fix.disabled:command=echo fixed" \ + > --config "fix.disabled:pattern=foo" \ + > --config "fix.disabled:enabled=false" + ignoring disabled fixer tool: disabled + $ cat foo + foo + + $ cd .. + Test that we can configure a fixer to affect all files regardless of the cwd. The way we invoke matching must not prohibit this. diff --git a/hgext/fix.py b/hgext/fix.py --- a/hgext/fix.py +++ b/hgext/fix.py @@ -173,6 +173,7 @@ 'priority': 0, 'metadata': 'false', 'skipclean': 'true', + 'enabled': 'true', } for key, default in FIXER_ATTRS.items(): @@ -726,6 +727,7 @@ fixers[name]._priority = int(fixers[name]._priority) fixers[name]._metadata = stringutil.parsebool(fixers[name]._metadata) fixers[name]._skipclean = stringutil.parsebool(fixers[name]._skipclean) + fixers[name]._enabled = stringutil.parsebool(fixers[name]._enabled) # 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 # affect no files. There is no reasonable subset of files to use as the @@ -734,6 +736,9 @@ ui.warn( _('fixer tool has no pattern configuration: %s\n') % (name,)) del fixers[name] + elif not fixers[name]._enabled: + ui.debug('ignoring disabled fixer tool: %s\n' % (name,)) + del fixers[name] return collections.OrderedDict( sorted(fixers.items(), key=lambda item: item[1]._priority, reverse=True))