Почему мой 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
есть.