Пытается создать ловушку проверки синтаксиса php для репозитория git. Я был счастлив, когда нашел фрагмент кода, который делает именно это.
Но похоже, что этот фрагмент скрипта имеет недостаток. Он выполняет
git diff-index --cached --name-only HEAD
, чтобы получить список файлов в индексе. Теперь он запускает php -l для каждого файла в этом списке. Недостаток в том, что файл может отличаться в рабочей копии и в промежуточной области. Если в промежуточной области php есть синтаксическая ошибка, а в версии рабочей копии нет, синтаксическая ошибка не обнаружена и фиксация выполняется успешно, что и было необходимо предотвратить.
Это нетривиальная проблема, которую нужно решить, или есть какой-то способ запустите php -l для промежуточной версии каждого файла?