PhpStorm и pre-commit hook с PHP-CS-Fixer, который изменяет количество пустых строк в php файле

Воспроизводит на Windows и Mac OS.

В нашем проекте у нас есть хук предварительной фиксации, который запускает PHP-CS-Fixer, который изменяет количество пустых строк между методами в файле (сокращается со многих до одного). После этого это делает git add <modified_file> поставить это изменение.

Когда мы фиксируем из PhpStorm Commit Dialog (Ctrl + K), он успешно фиксируется, а затем вызывает странное состояние этого диалога (снова нажмите Ctrl + K после фиксации) с сообщением "Содержимое идентично" (см. Первый снимок экрана).

Диалог фиксации PhpStorm после фиксации с изменениями пустых строк

Диалог фиксации PhpStorm после фиксации с изменениями пустых строк

Что мы видим, если запустить git status после commit

Что мы увидим, если запустить ** git status ** после коммита

Что мы увидим, если запустить коммит git diff после коммита

Что мы увидим, если запустить ** git diff ** после коммита

Примечание: если мы фиксируем из командной строки (не из диалога фиксации PhpStorm), все идет хорошо.

(ОБНОВЛЕНИЕ) Примечание 2: Если предварительная фиксация (php-cs-fixer) внесла изменения, не связанные с пустыми строками, все также будет в порядке.

Что мы делаем не так? Это проблема, связанная с фиксацией PhpStorm? Как это исправить?

1 ответ

Я опубликовал проблему в трекере ошибок PhpStorm, и они предложили добавить хук post-commit с git update-index -g, Я сделал это, и это работает!

Другие вопросы по тегам