git clone из хука pre-commit вызывает хук на провал - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть ловушка предварительной фиксации, которая должна запускать собственный внутренний сканер для всех зафиксированных файлов.Этот сканер также поддерживается в своем собственном git-репо.Поэтому в файле ловушек я запускаю git clone ..., чтобы убедиться, что используется последняя версия.Проблема, с которой я сталкиваюсь, заключается в том, что все команды git после клона работают на клонированном репо, а не на той, для которой запущен хук.В результате я не могу получить список обновленных файлов.Кроме того, ловушка всегда терпит неудачу с:

ошибка: неверный объект ...
ошибка: ошибка построения деревьев

Где перечисленный неверный объект взят из клонированногорепо.

Я убедился, что клонирую в совершенно другой каталог.Я также установил переменные окружения GIT_TRACE и GIT_TRACE_SETUP перед фиксацией.Я вижу, что все значения git_dir, worktree и cwd соответствуют ожиданиям.Сначала они устанавливаются на первое репо, затем на клонированное репо во время процесса клонирования, а затем возвращаются к первому репо после завершения клона.

Как только я удаляю git clone, крюк запускается беззаминка.

Я использую git версии 2.11.0.

Почему клон наносит такой большой ущерб и как я могу предотвратить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...