2012-03-13 131 views
2

我試圖尋找解決方案。 但我不能。Git推後gitolite鉤不起作用

我安裝了gitolite。它運作良好。
我可以在本地機器上克隆克隆,並更改gitolite-admin回購。

但我想要使用gitolite掛鉤。 按本手冊

http://sitaramc.github.com/gitolite/hooks.html

定製掛鉤

,如果你願意,你可以提供你自己的,定製的,鉤子腳本。安裝 gitolite像往常一樣,然後:

到〜/ .gitolite /鉤/通用服務器上,並把你的新鉤子 有現在運行「GL-設置」按鈕,您可以使用此過程來安裝 新的掛鉤以及更新您以前安裝的掛鉤 。

所以我試圖掛鉤一些基本的shell腳本。

我把

~/.gitolite/hooks/common 

的bash shell腳本,並把它命名爲

update 

更新腳本文件的所有者是混帳,和excutable。 shell腳本是這樣的..

#!/bin/bash 
touch /tmp/$GL_REPO 

和我執行

gl-setup mypubkey.pub 

然後, 在我的本地文件夾的git, 我修改了一些文件,commitpush到gitolite服務器。 推送效果很好。每個文件上傳到gitolite的回購。 但是,掛鉤似乎不會發生。什麼都沒發生。

在服務器的tmp目錄中,沒有創建文件。

我忘記了什麼嗎?

任何評論PLZ ...

回答

6

應該認識到,(從「using hooks」頁面,你在你的問題提=:

update鉤在所有回購使用,是至關重要的gitolite的訪問控制

換句話說,你不能直接使用「更新」的劇本。
必須使用gitolite的「hook chaining」的特點,爲了 gitolite的一個後打電話給自己的更新掛鉤

要經營自己的「update」掛鉤,只是把它放在一個文件稱爲update.secondary並將其安裝爲掛鉤。
Gitolite的update掛鉤會自動鏈接到它,注意傳遞它相同的3個參數原始update鉤子從git收到。


在年底,OP Jinbom Heo,而不是使用 「gitolite鉤鏈」,去與另一個鉤子:

我把post-receive文件夾/var/gitolite/hooks/common/。它的工作原理。

的文檔 「Where do I put my hooks」 建議,而把那些在 「用戶」 位置(~/.gitolite/hooks/common):

hook place

但系統中的位置也可以。

/var/gitolite/hooks/common/手段,順便說一句,在OP選擇了root method installationpackage one,使用默認路徑/usr/local/bin/var/gitolite/conf/var/gitolite/hooks

+0

謝謝VonC始終。 ^^; 你給了我一個決定性的提示。 我把post-receive文件放在/ var/gitolite/hooks/common /文件夾中。 ,它的工作原理。 謝謝。 – 2012-03-14 01:13:03

+0

@JinbomHeo優秀。爲了提高可見性,我在答案中包含了解決方案,並添加了對相關文檔的參考,供其他人查看。 – VonC 2012-03-14 06:49:56