| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программное обеспечение под *NIX системы > Проблема с исполнением хуков в git |
| Автор: alex_smirnov 27.3.2009, 16:58 |
| Добрый день, для гит-репозитория пишу хук update. Надо сделать так, чтобы: 1. хук сделал клон репозитория, в который производится push (репозитория в котором находится хук); 2. после того как клон сделан, надо сделать checkout нужной ветки. Собственно, содержимое хука: !/bin/sh git clone ../tftest.git /tmp/tftest-clone; cd /tmp/tftest-clone; pwd; git checkout --track -b second_branch origin/second_branch; pwd; Клон делается успешно и переход в папку с клонированым репозиторием тоже происходит (pwd). А вот чекаут не происходит :(. Гит ругается: fatal: Not a git repository: '.', после чего выводится правильный путь до клонированного репозитория. Если вместо чекаута заснуть (sleep 10s), и в это время сделать чекаут в другой консольке в нужной папке, то всё впорядке. И вообще, если построчно выполнять скрипт ручками, то всё работает. В чем тут проблема не пойму. Буду благодарен за подсказки. ЗЫ: может мне надо изобразить некоторый другой процесс, который сделает чекаут и вернет управление скрипту, но как это грамотно сделать? |
| Автор: alex_smirnov 27.3.2009, 17:25 |
| Решилось!!! Читайте доки называется: When update-hook is run, GIT_DIR is set to '.' by the calling receive-pack. Перед клоном надо было выполнить следующее: unset GIT_DIR; |