Почему мой git не может перейти на мой сервер, используя gitolite git-daemon

Когда я использую Gitolite, игнорируя git-daemonЯ могу сделать как git clone git://xxx/xxx, но когда я нажимаю на проект, он показывает мне ошибку:

Total 2 (delta 0), reused 0 (delta 0)
remote: Empty compile time value given to use lib at hooks/update line 6
remote: Use of uninitialized value in require at hooks/update line 7.
remote: Can't locate Gitolite/Hooks/Update.pm in @INC (@INC contains:  /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at hooks/update line 7.
remote: BEGIN failed--compilation aborted at hooks/update line 7.
remote: error: hook declined to update refs/heads/master
To git://www.54cxy.com/qianfuzi
 ! [remote rejected] master -> master (hook declined)

Тем не менее, когда я использую ssh лайк git@xxx:xxx.git он работал не только может клонировать, но и может подтолкнуть, но я хочу использовать git:// клонировать и подтолкнуть, так что я могу сделать, чтобы это работало?

1 ответ

Хитрость заключается в том, что если вы клонируете git-репо, управляемое gitolite, это удаленное репо будет содержать post-update крюк ( зарезервированный Gitolite), который должен называться Gitolite.

Как правило, вы должны иметь возможность проталкивать с помощью собственного протокола git, при условии, что репозиторий объявлен читаемым пользователем 'daemon' ( см. Синтаксис и см. " Взаимодействие сgit-daemon"для GitoliteV3)

repo @all
    R   =   gitweb daemon

Любой репо, читаемый специальным пользователем daemon считается читаемым git-daemon,
Для каждого из этих репозиториев пустой файл git-daemon-export-ok создается в хранилище (то есть, repo.git каталог внутри $HOME/repositories).

Поэтому проверьте, упоминает ли ваш файл gitolite.conf пользователя daemonи если файл $HOME/repositories/git-daemon-export-ok есть.

Другие вопросы по тегам