本文描述如何使用Gerrit2.4.2設定審批次程序。
首先Gerrit中已經有了兩個帳號,一個是我的帳號,屬於管理員,另一個是工程師。
本文就描述一個簡單的審批次程序:
工程師提交代碼,我Review通過,然後將代碼提交。
step1: 建立Reviewer組和Verifier組
Reviewer負責review
Verifier負責將review的結果提交到Git中心倉庫中
然後設定成員,由於我是管理員,所以我自然同時都在Reviewer和Verifier組中。
step2:建立項目組,比如這裡是appengine team,將工程師加入其中
step3:設定review和verifier許可權。為了簡單起見,通過Gerrit在All projects的Access中如下設定:
CSDN今天上傳圖片不行,就簡單文字描述一下:
在refs/* 路徑下,添加Reviewer組,許可權是Label Code-Review,範圍是-2~+2
在refs/* 路徑下,添加Verifier組,許可權是Label Verifier,範圍是-1~+1
step4:設定要管理工程的access許可權。
將appengine team組加入到refs/for/*路徑下,許可權為Push.
解釋一下,每當工程師通過命令git push直接推送到中心倉庫的ref/heades/master的時候,就會失敗。只能推送到ref/for/master,等待審批。
服務端設定完成後,開始設定用戶端。
step5: 設定push的捷徑
每次敲命令:git push origin HEAD:refs/for/master 是很容易出錯的,所以在用戶端clone出來的工程目錄下.git/config檔案中添加一節配置:
[remote "review"] pushurl = ssh://wangxd555@10.112.18.189:29418/appengine.git push = HEAD:refs/for/master receivepack = git receive-pack --reviewer csfreebird
這樣,以後就可用git push review 來推送。
step6: 為了避免一個change被打回來修改後再被當作新的change提交,要使用Gerrit提供的hook指令碼
scp -P 29418 -p username@gerrit_server:/hooks/commit-msg .git/hooks
現在正常工作吧。