If you modify an XML file, it seems like the pre-commit hook still tries to validate it as PHP rather than excluding it. In a very unscientific test, I tried simply adding filters_exclude[20]='\.xml$' to the end of the array (so xml is excluded twice) and it worked fine. I suspect that the last exclude pattern on the array is simply being ignored.
If you modify an XML file, it seems like the pre-commit hook still tries to validate it as PHP rather than excluding it. In a very unscientific test, I tried simply adding
filters_exclude[20]='\.xml$'to the end of the array (so xml is excluded twice) and it worked fine. I suspect that the last exclude pattern on the array is simply being ignored.