Gerrit是一套Google工程師撰寫的開源code review系統,底下可以銜接多種類的版本控制工具,最近因為Android Studio的開發導入Gerrit作為code review的系統開始竄紅;以下介紹Gerrit如何設定其Hook機制。
[安裝環境]
[設定步驟]
Step 1. 請正確安裝Gerrit系統(略)
Step 2. 修改gerrit的設定檔,把hook的設定補進去,目錄在${your gerrit home}/etc/gerrit.config;請根據自己的需求設定gerrit支援的hook階段。
Step 3. 將script設定為可執行
Step 4. 重啟Gerrit
Step 5. patchset-created是你要執行hook的script,可以換成任何您熟悉的script語言,置放在/etc/gerrit/hooks目錄底下,注意檔名要正確才能對應;先用bash來測試是否正常執行。
Step 5. 從本地端執行git commit push,將code送到Gerrit,然後當patchset被產生的時候就會執行patchset-created這支script。
[安裝環境]
- 作業系統:Ubuntu 14.04
- Gerrit版本:2.11
- 版本控制:Git
[設定步驟]
Step 1. 請正確安裝Gerrit系統(略)
Step 2. 修改gerrit的設定檔,把hook的設定補進去,目錄在${your gerrit home}/etc/gerrit.config;請根據自己的需求設定gerrit支援的hook階段。
[hooks]
path = /etc/gerrit/hooks
patchsetCreatedHook = patchset-created
# ...you can add more hooks
Step 3. 將script設定為可執行
sudo chmod +x /etc/gerrit/hooks/patchset-created
Step 4. 重啟Gerrit
sudo /etc/init.d/gerrit restart
Step 5. patchset-created是你要執行hook的script,可以換成任何您熟悉的script語言,置放在/etc/gerrit/hooks目錄底下,注意檔名要正確才能對應;先用bash來測試是否正常執行。
#!/bin/sh
echo 'hook setting test.' > hook-gen.txt;
注意:hook-gen.txt會產生到你git到的repo的project目錄,原則上應該是/etc/gerrit/git/${project}。Step 5. 從本地端執行git commit push,將code送到Gerrit,然後當patchset被產生的時候就會執行patchset-created這支script。
請問,在gerrit.config新增設定hooks之後,一定要重啟Gerrit嗎?(目前我的Gerrit server是在windows環境)
回覆刪除理論上在Linux環境改了設定,重啟才會生效;注意是重啟gerrit那支process,不是OS喔。
刪除因為我的Gerrit Server是架在Windows Server 2008的環境,所以想了解更改gerrit.config後,是否也要跟Linux環境一樣要重啟Gerrit
刪除需要重啟。
刪除The contents of the etc/gerrit.config file are cached at startup by Gerrit. If you modify any properties in this file, Gerrit needs to be restarted before it will use the new values.
我重啟了。Thank you~~~
刪除