Show More
@@ -705,6 +705,14 b' def getfixers(ui):' | |||
|
705 | 705 | setattr(fixers[name], pycompat.sysstr('_' + key), |
|
706 | 706 | attrs.get(key, default)) |
|
707 | 707 | fixers[name]._priority = int(fixers[name]._priority) |
|
708 | # Don't use a fixer if it has no pattern configured. It would be | |
|
709 | # dangerous to let it affect all files. It would be pointless to let it | |
|
710 | # affect no files. There is no reasonable subset of files to use as the | |
|
711 | # default. | |
|
712 | if fixers[name]._pattern is None: | |
|
713 | ui.warn( | |
|
714 | _('fixer tool has no pattern configuration: %s\n') % (name,)) | |
|
715 | del fixers[name] | |
|
708 | 716 | return collections.OrderedDict( |
|
709 | 717 | sorted(fixers.items(), key=lambda item: item[1]._priority, |
|
710 | 718 | reverse=True)) |
@@ -722,7 +730,8 b' class Fixer(object):' | |||
|
722 | 730 | |
|
723 | 731 | def affects(self, opts, fixctx, path): |
|
724 | 732 | """Should this fixer run on the file at the given path and context?""" |
|
725 |
return |
|
|
733 | return (self._pattern is not None and | |
|
734 | scmutil.match(fixctx, [self._pattern], opts)(path)) | |
|
726 | 735 | |
|
727 | 736 | def shouldoutputmetadata(self): |
|
728 | 737 | """Should the stdout of this fixer start with JSON and a null byte?""" |
@@ -1242,6 +1242,26 b' three revisions instead of two.' | |||
|
1242 | 1242 | |
|
1243 | 1243 | $ cd .. |
|
1244 | 1244 | |
|
1245 | Tools configured without a pattern are ignored. It would be too dangerous to | |
|
1246 | run them on all files, because this might happen while testing a configuration | |
|
1247 | that also deletes all of the file content. There is no reasonable subset of the | |
|
1248 | files to use as a default. Users should be explicit about what files are | |
|
1249 | affected by a tool. This test also confirms that we don't crash when the | |
|
1250 | pattern config is missing, and that we only warn about it once. | |
|
1251 | ||
|
1252 | $ hg init nopatternconfigured | |
|
1253 | $ cd nopatternconfigured | |
|
1254 | ||
|
1255 | $ printf "foo" > foo | |
|
1256 | $ printf "bar" > bar | |
|
1257 | $ hg add -q | |
|
1258 | $ hg fix --debug --working-dir --config "fix.nopattern:command=echo fixed" | |
|
1259 | fixer tool has no pattern configuration: nopattern | |
|
1260 | $ cat foo bar | |
|
1261 | foobar (no-eol) | |
|
1262 | ||
|
1263 | $ cd .. | |
|
1264 | ||
|
1245 | 1265 | Test that we can configure a fixer to affect all files regardless of the cwd. |
|
1246 | 1266 | The way we invoke matching must not prohibit this. |
|
1247 | 1267 |
General Comments 0
You need to be logged in to leave comments.
Login now