前一陣子在CentOS 6.2上安裝了Git/gitosis/ReviewBoard,那個煩啊。主要是gitosis這個東西管理不方便,其次是 Review board安裝也比較繁瑣,需要在用戶端使用hook。
雖然大家已經開始使用,而且用起來感覺比較簡單。但是review board工作流程過於寬鬆,程式員不經過批准也可以push代碼到遠程伺服器上。基本上屬於君子協定,不太適合對代碼提交審查嚴格的環境。
所以現在開始試用gerrit。這次使用Ubuntu12.04 server。首先說一下gerrit的優勢,它已經提供了訪問git server的認證和project管理功能,因此避免了使用gitossi或者其他繁瑣的管理工具。
1.安裝git
sudo apt-get install git-core git-doc
2.添加gerrit2使用者,密碼也是gerrit2
參考我的部落格:http://blog.csdn.net/sheismylife/article/details/7584656
3.下載gerrit最新的war包
http://code.google.com/p/gerrit/downloads/list
我用的是2.4版本。
4.準備Java運行環境
現在可以安裝openjdk7了。
apt-get install openjdk-7-jdk
需要重建軟連結,否則仍然在用openjdk-6
rm /etc/alternatives/javaln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java /etc/alternatives/java
5.修改war檔案屬性
chown gerrit2:gerrit2 gerrit-2.4.2.war
mv gerrit-2.4.2.war /home/gerrit2/su - gerrit2chmod -R 777 ./gerrit-2.4.2.war
gerrit2是war檔案的擁有者,並且允許其他使用者執行。
6.建立gerrit網站
mv gerrit-2.4.2.war /home/gerrit2
su - gerrit2
java -jar gerrit-2.4.2.war init -d review_site
回答一系列問題:(絕大多數預設即可)
如果輸入錯誤,可以刪除review_site目錄,重新執行上面的命令。資料庫用預設的H2,我用MySQL老是出錯。
7.SMTP設定
在review_site/etc/gerrit.config中設定如下:
[sendemail]enable = true smtpServer = smtp.gmail.com smtpServerPort = 465 smtpUser = youname@gmail.com smtpEncryption = sslsmtpPass = youpwd sslVerify = false from = Code Review <yourname@gmail.com>
8.注意事項
a.我碰到啟動失敗,然後重新啟動gerrit 就好了
b.重新啟動必須要用全路徑,相對路徑不行
~/review_site/bin/gerrit.sh restart
c.第一次開啟網站註冊使用者的就是管理員(這種玩法很有意思,不過最好有個文檔)
d.我註冊用的是google帳號,如果沒有vpn翻牆肯定是不行的
e.同樣因為用了google帳號,訪問網站必須要用vpn翻牆
f.建立project通過網站就可以了,也可用命令列
注意,通過網站建立的時候,需要選中下面的選項。
Create initial empty commit
g.必須建立一個group,把自己帳號加進去,然後project裡面要在push許可權內加入這個group
即便你是owner許可權,也不能通過git push提交資料。
h:要添加用戶端的公開金鑰內容,用戶端才能訪問
連接埠是29418,clone命令參考下面的格式:
git clone ssh://chenshu@your_server:29418/REPOSITORY_NAME.git
i.用戶端配置必須和網站上使用者一致。用下面的命令。
git config --global user.name yourname
git config --global user.email youremail
j.網站訪問的預設連接埠是8080
如果改為80連接埠,需要root許可權啟動,否則會啟動失敗。使用root會帶來安全問題。自己衡量了。
k.修改etc/gerrit.config裡面的web url
[gerrit]
basePath = git
canonicalWebUrl = http://localhost:8080/
將上面的localhost改成網域名稱或者IP地址。
如何進行程式碼檢閱,會在以後的文章裡面介紹,本文僅僅是描述如何安裝和基本的運行。