крючок gitolite после того, как git push не работает

Я пытался искать, чтобы найти решение. но я не могу.

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

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

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 сервера файл не создается.

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

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


person Jinbom Heo    schedule 13.03.2012    source источник


Ответы (1)


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

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

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

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


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

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

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

место крючка

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

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

person VonC    schedule 13.03.2012
comment
спасибо VonC всегда. ^^; Вы даете мне решающий намек. Я помещаю файл пост-получения в папку /var/gitolite/hooks/common/. и это работает. Спасибо. - person Jinbom Heo; 14.03.2012
comment
@JinbomHeo Отлично. Я включил ваше решение в ответ для большей наглядности и добавил ссылку на соответствующую документацию, чтобы другие могли ее увидеть. - person VonC; 14.03.2012