git hook syntax check

Пытается создать ловушку проверки синтаксиса php для репозитория git. Я был счастлив, когда нашел фрагмент кода, который делает именно это.

Но похоже, что этот фрагмент скрипта имеет недостаток. Он выполняет

git diff-index --cached --name-only HEAD

, чтобы получить список файлов в индексе. Теперь он запускает php -l для каждого файла в этом списке. Недостаток в том, что файл может отличаться в рабочей копии и в промежуточной области. Если в промежуточной области php есть синтаксическая ошибка, а в версии рабочей копии нет, синтаксическая ошибка не обнаружена и фиксация выполняется успешно, что и было необходимо предотвратить.

Это нетривиальная проблема, которую нужно решить, или есть какой-то способ запустите php -l для промежуточной версии каждого файла?

7
задан Paul Gear 28 September 2014 в 00:49
поделиться