Gitolite начал выдавать мне ошибки, когда я нажимаю на репозиторий Git с ошибками об отклоненных хуках.

Я просмотрел это и это, которые описывают похожие проблемы, но не предлагают решения моей проблемы. Однако Gitolite начал делать это только прошлой ночью, и я не уверен, что это вызвало. Вот ошибки, которые я получаю:

git@server:/path/to/cloned/repo/$ git push
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 374 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
remote: ENV GL_RC not set
remote: BEGIN failed--compilation aborted at hooks/update line 20.
remote: error: hook declined to update refs/heads/master
To /home/git/repositories/git-repo-name.git/
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to '/home/git/repositories/git-repo-name.git/'

Странно то, что Gitolite начал жаловаться только сейчас. Он работал нормально в течение последней недели или около того.


person dsavi    schedule 12.01.2012    source источник
comment
Были ли обновления на машине с gitolite? Было ли у вас сообщение ENV GL_RC not set, когда оно еще работало?   -  person fge    schedule 12.01.2012
comment
Нет, никаких обновлений. Ошибка появилась только сейчас.   -  person dsavi    schedule 12.01.2012
comment
Я только что заметил, что у вас совершенно неправильный пульт... Смотрите мой ответ   -  person fge    schedule 12.01.2012


Ответы (1)


Это не способ использования гитолита. Ваш пульт /home/git/repositories/git-repo-name.git/, что означает, что gitolite находится на вашей собственной машине.

Пульт должен быть git@localhost:git-repo-name.

Добавьте свой собственный публичный SSH-ключ в репозиторий gitolite-admin, правильно заполните gitolite.conf, измените свой пульт (путем редактирования .git/config) и повторите попытку.

И обратите внимание, что вы также должны были клонировать gitolite-admin, используя git@localhost:gitolite-admin.

person fge    schedule 12.01.2012
comment
Это сработало для моей локальной машины, но мне также нужно иметь ее клон на машине, на которой размещен репозиторий. Когда я пытаюсь клонировать его туда, происходит это (используя ту же команду, что и на моем локальном компьютере): git@server:~/test$ git clone git@server:git-repo-name Initialized empty Git repository in /working/directory/.git/ git@server's password: fatal: 'git-repo-name' does not appear to be a git repository fatal: The remote end hung up unexpectedly - person dsavi; 12.01.2012
comment
Используйте точно такой же способ для клонирования. И не используйте пользователя git, используйте другого (не забывая правильно настроить gitolite перед клонированием). Не вижу причин, почему это не должно работать... - person fge; 12.01.2012
comment
У меня было точно такое же сообщение об ошибке (то, что было в вопросе) с задачей cron, автоматически фиксирующей и отправляющей клон репозитория веб-приложения, которое я использую. Этот ответ помог мне, я просто изменил адрес репо (git remote set-url origin git@localhost:repo_name.git вместо предыдущего /home/git/repositories/repo_name.git) и добавил ключ ssh пользователю с разрешениями. - person Arnaud; 26.03.2012