2011-08-29 40 views
9

我讀過全部the documentation about hooks,similarquestionsa lot of code但我無法追蹤我的程序中的錯誤。我需要在我gitolite安裝(與rpm包在CentOS製造)安裝一個簡單的鉤所以這裏是我做過什麼:如何在gitolite中安裝鉤子

安裝gitolite(前一段時間):

  1. 安裝的rpm包
  2. # su - gitolite
  3. $ gl-setup /tmp/fabio.pub(如gitolite用戶)

現在安裝鉤子:

  1. 運行gl-setup /tmp/fabio.pub創建與鉤代碼示例文件post-update~gitolite/.gitolite/hooks/commonchmod +x再次爲stated here

但是什麼都沒有發生,從最新的命令退出狀態是0,但掛鉤文件在任何版本庫中都沒有符號鏈接。那麼我的程序有什麼問題?我錯過了什麼嗎?

獎金的問題:

  1. 如果我瞭解了我的文檔程序是正確的?即我應該每次更新任何鉤子時運行gl-setup?
  2. 通過這種方式,我在這個gitolite安裝下的每個倉庫中安裝共享鉤子,是嗎?我是否可以手動安裝鉤子,或者作爲符號鏈接到某個地方,或者只是爲特定存儲庫創建可執行腳本?我應該在給定存儲庫的hook文件夾中手動執行此操作嗎?我是否應該關注鉤子衝突(即,單個存儲庫的任何自定義鉤子是否會阻止具有相同名稱的其他共享鉤子)?

不知道這個問題,我的gitolite版本是1.5.9.1

回答

0

我剛剛發現,如果我複製我的鉤子樣本/usr/share/gitolite/hooks/common/它將由gl-setup符號鏈接。也許在這個包中$GL_ADMINDIR變量沒有被設置爲某種原因。兩個獎金問題仍然存在...

0

您需要在該目錄中添加update.secondary鉤子,然後使用gl-easyinstall進行重新部署。看看gitolite附帶的更新鉤子。您會在接近尾聲時看到update.secondary。如果你提供這個,它會起作用。

+0

我不需要更新掛鉤,所以我不認爲這會解決我的問題。另外,我從一個包中安裝,所以我認爲我的命令不是'gl-easyinstall',而是'gl-setup'。 – Fabio

+0

您更新gitolite克隆中的鉤子,然後重新運行簡易安裝腳本。你的鉤子的目標是什麼?大部分事情都是通過更新鉤子完成的。 –

+0

[這是我需要的鉤子](https://github.com/kahseng/redmine_gitolite_hook/blob/master/contrib/hooks/post-receive-redmine_gitolite)。我根本無法運行'gl-easyinstall',因爲我沒有本地克隆,因爲我已經使用[package method]安裝了gitolite(https://github.com/sitaramc/gitolite/blob/pu/doc /1-INSTALL.mkd#_package_method)。 – Fabio

1

在Gitolite v3中,您可以選擇將您的掛鉤編輯爲變量的地方放在.gitolite.rc的變量中。請參閱文件源以獲取更多選項(例如,啓用每個回購定製掛鉤)

然後,將您的掛鉤放入指定的目錄,使它們可執行並運行gitolite setup --hooks-only