D7101: fix: match patterns relative to root
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Mon Oct 14 22:52:00 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
I was surprised fixer patterns (used to determine which fixers to run)
are applies to the parent directory, not the repo root
directory. Danny Hooper (the author of the extension) seemed to agree
that it's better to apply them to the repo root, so that's what this
patch does.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D7101
AFFECTED FILES
hgext/fix.py
tests/test-fix.t
CHANGE DETAILS
diff --git a/tests/test-fix.t b/tests/test-fix.t
--- a/tests/test-fix.t
+++ b/tests/test-fix.t
@@ -1321,7 +1321,7 @@
$ echo modified > bar
$ hg fix -w bar
$ cat bar
- modified
+ $TESTTMP/subprocesscwd
$ cd ../..
diff --git a/hgext/fix.py b/hgext/fix.py
--- a/hgext/fix.py
+++ b/hgext/fix.py
@@ -140,6 +140,7 @@
context,
copies,
error,
+ match as matchmod,
mdiff,
merge,
obsolete,
@@ -843,7 +844,11 @@
def affects(self, opts, fixctx, path):
"""Should this fixer run on the file at the given path and context?"""
- return scmutil.match(fixctx, [self._pattern], opts)(path)
+ repo = fixctx.repo()
+ matcher = matchmod.match(
+ repo.root, repo.root, [self._pattern], ctx=fixctx
+ )
+ return matcher(path)
def shouldoutputmetadata(self):
"""Should the stdout of this fixer start with JSON and a null byte?"""
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list