Гитолитовый крюк после git push не работает - PullRequest
2 голосов
/ 13 марта 2012

Я пытался найти решение.но я не могу.

Я установил гитолит.И это хорошо работает.Я могу сделать git clone на локальной машине и изменить репозиторий gitolite-admin.

Но я хочу использовать перехват gitolite.следуя этому руководству

http://sitaramc.github.com/gitolite/hooks.html

пользовательские хуки

Вы можете предоставить свои собственные, пользовательские скрипты хуков, если хотите.Установите gitolite как обычно, затем:

перейдите в ~ / .gitolite / hooks / common на сервере и поместите туда новый хук, теперь снова запустите "gl-setup". Эту процедуру можно использовать для установки новых хуков кака также для обновления хуков, которые вы ранее установили.

Поэтому я попытался подключить некоторый базовый скрипт оболочки.

Я поместил скрипт оболочки bash на

~/.gitolite/hooks/common

и назвал его

update

Владелец файла скрипта обновления - git, и его можно использовать.скрипт оболочки выглядит следующим образом ..

#!/bin/bash
touch /tmp/$GL_REPO

, и я выполняю

gl-setup mypubkey.pub

, а затем, в своей локальной папке git, я изменил какой-то файл, commit и pushна сервер gitolite.толчок работает хорошо.каждый файл загружен в репозиторий Gitolite.но, кажется, перехват не происходит.Ничего не случилось.

в каталоге tmp сервера, файл не создается.

Я что-то забыл?

любые комментарии, плз ...

1 Ответ

6 голосов
/ 13 марта 2012

Вы должны понимать, что (со страницы " using hooks ", которую вы упоминаете в своем вопросе =:

Хук update используется во всех репозиториях и имеет решающее значение для контроля доступа gitolite

Другими словами, вы не можете напрямую использовать скрипт "update".
Вы должны использовать функцию « цепочка крючков » в gitolite, чтобы вызвать свой собственный крюк для обновления после тот из gitolite:

Чтобы запустить собственный хук 'update', просто поместите его в файл с именем update.secondary и установите его как хук.
Хук Gitolite update будет автоматически цепляться за него, стараясь передать ему те же 3 аргумента, которые исходный хук update получил от git.


В конце концов, OP Jinbom Heo , вместо того, чтобы использовать «цепочку из гитолитового крючка», пошел с другим крюком:

Я положил post-receive файл в папку /var/gitolite/hooks/common/. И это работает.

Документ " Куда я кладу свои крючки " предлагает вместо этого поставить их под "пользовательским" расположением (~/.gitolite/hooks/common):

hook place

Но расположение системы тоже работает.

(/var/gitolite/hooks/common/ означает, что, кстати, OP выбрал корневой метод установки или пакет один с путями по умолчанию /usr/local/bin, /var/gitolite/conf, /var/gitolite/hooks)

...