Как установить хуки в гитолит

Я прочитал всю документацию по хукам, похоже вопросы и много кода, но я не могу отследить, где ошибка в моей процедуре. Мне нужно установить простой хук в мою установку gitolite (сделанную с помощью пакета rpm в CentOS), вот что я сделал:

Чтобы установить gitolite (некоторое время назад):

  1. Установил пакет rpm
  2. # su - gitolite
  3. $ gl-setup /tmp/fabio.pub (как пользователь gitolite)

Теперь, чтобы установить крючок:

  1. Создал образец файла post-update с кодом хука в ~gitolite/.gitolite/hooks/common и chmod +x на нем.
  2. снова запустите gl-setup /tmp/fabio.pub, как указано

Но ничего не произошло, статус выхода из последней команды 0, но файл хука не симлинкован ни в одном из репозиториев. Так что не так с моей процедурой? Я что-то пропустил?

Бонусные вопросы:

  1. Если бы я понял документ, моя процедура была бы правильной? т.е. должен ли я запускать gl-setup каждый раз, когда я обновляю какой-либо хук?
  2. Таким образом, я устанавливаю общие хуки в каждом репозитории в рамках этой установки gitolite, верно? Могу ли я вручную установить хук либо как символическую ссылку куда-нибудь, либо просто как исполняемый скрипт только для данного репозитория? Должен ли я сделать это вручную в папке ловушек данного репозитория? Должен ли я заботиться о конфликтах хуков (т. е. будет ли любой пользовательский хук для одного репозитория блокировать любой другой общий хук с тем же именем)?

Не знаю, имеет ли это значение, моя гитолитовая версия 1.5.9.1.


person Fabio    schedule 29.08.2011    source источник


Ответы (3)


В Gitolite v3 вы можете выбрать, куда поместить свои хуки, редактируя переменную LOCAL_CODE в .gitolite.rc. Дополнительные параметры см. в источнике файла (например, включение пользовательских хуков для каждого репо).

Затем вы помещаете свои хуки в указанный каталог, делаете их исполняемыми и запускаете gitolite setup --hooks-only.

person takeshin    schedule 28.06.2014

вам нужно добавить хук update.secondary в каталог, а затем выполнить повторное развертывание с помощью gl-easyinstall. Взгляните на хук обновления, который поставляется с gitolite. Вы увидите, что ближе к концу он вызывает update.secondary. Если вы это предоставите, это сработает.

person Adam Dymitruk    schedule 29.08.2011
comment
Мне не нужен крючок обновления, поэтому я не думаю, что это решит мою проблему. Кроме того, я установил из пакета, поэтому я думаю, что моя команда не gl-easyinstall, а gl-setup. - person Fabio; 30.08.2011
comment
вы обновляете хуки в клоне gitolite, а затем повторно запускаете скрипт простой установки. Какова цель вашего крючка? Большинство вещей делается через хук обновления. - person Adam Dymitruk; 30.08.2011
comment
это тот хук, который мне нужен. Я просто не могу запустить gl-easyinstall, потому что у меня нет локального клона, так как я установил gitolite с помощью метод пакета. - person Fabio; 30.08.2011
comment
Я бы переустановил с клиента. Ваш сценарий можно настроить как сценарий обновления. Вместо стандартного ввода ваши старые, новые и refspec будут использоваться в качестве аргументов командной строки. Легкая смена. Вам будет проще обновлять хуки, если вы устанавливаете со стороны клиента. - person Adam Dymitruk; 30.08.2011

Я только что узнал, что если я скопирую свой пример хука в /usr/share/gitolite/hooks/common/, он будет связан с gl-setup. Возможно, в этом пакете переменная $GL_ADMINDIR по какой-то причине не установлена. Два бонусных вопроса остаются в силе...

person Fabio    schedule 16.05.2012