Gerrit安裝
本文是以安裝gerrit-2.14為例。
操作系統
Unix或Linux系統。本文的安裝步驟是在Ubuntu虛擬機中執行。
安裝步驟
- Apache安裝
執行:sudo apt-get install apache2
注意:To run Gerrit behind an Apache server using 'mod_proxy', enable the necessary
Apache2 modules:
執行:sudo a2enmod proxy_http
執行:sudo a2enmod ssl
使新的配置生效,需要執行如下命令:
service apache2 restart
- Step-2 安裝PostgreSQL數據庫
執行:sudo apt-get install postgresql
注意:安裝完postgresql后,會自動創建一個用戶名和密碼均為postgres的賬戶。
- Step-3 增加Gerrit需要的數據庫
執行:sudo -u postgres createuser -RDIElPS sela
執行:sudo -u postgres createdb -E UTF-8 -O sela reviewdb
- Step-4 安裝Gerrit
執行:java -jar gerrit-2.14.war init -d /home/sela/review_site
注意:這里以添加阿里云郵為例,不要復制SMTP相關項目
1.Create '/home/sela/review_site' [Y/n]? Y
2.Location of Git repositories [git]:
3.Database server type [h2]: postgresql
4.Server hostname [localhost]:
5.Server port [(postgresql default)]:
6.Database name [reviewdb]:
7.Database username [sela]
8.Type [LUCENE/?]:
9.Authentication method [OPENID/?]: HTTP
10.Get username from custom HTTP header [y/N]? N
11.SSO logout URL :
12.Enable signed push support [y/N]?
13.Install Verified label [y/N]?
14.SMTP server hostname [localhost]: smtp.mxhichina.com
15.SMTP server port [(default)]: 25
16.SMTP encryption [NONE/?]:
17.SMTP username [sela]: 郵箱地址
18.Behind reverse proxy [y/N]? y
19.Proxy uses SSL (https://) [y/N]? N
20.Subdirectory on proxy server [/]:
21.Listen on address [*]:
22.Listen on port [8080]:
23.Canonical URL [http://ubuntu/]: http://192.168.1.179:8080
其他配置項默認
- Step-4 郵箱配置
1.編輯./review_site/etc/gerrit.config 文件.
2.在sendemail部分添加from配置,如下:
[sendemail]
smtpServer = smtp.mxhichina.com
smtpServerPort = 25
smtpUser = 郵箱地址
from=CodeReview<郵箱地址>
3.重啟Gerrit
./review_site/bin/gerrit.sh restart
- Step-5 Apache反向代理配置
1.編輯/etc/apache2/sites-enabled/000-default.conf ,如下:
<VirtualHost 192.168.1.179:80>
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Welcome to Gerrit Code Review Site!"
Require valid-user
AuthUserFile /home/sela/review_site/etc/passwords
</Location>
AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8080/
</VirtualHost>
注意:The ProxyPass 8080 must be same with the ./review_site/etc/gerrit.config.
When access the http://192.168.1.179:80,Apache2 will lead you to
http://192.168.1.179:8080.
ProxyPass 8080必須和./review_site/etc/gerrit.config里的端口配置一致。當登錄http://192.168.1.179:80的時候,Apache2會幫助打開http://192.168.1.179:8080。
2.重啟Apache服務
執行:service apache2 restart
- Step-6 添加Gerrit賬戶
1.touch /home/sela/review_site/etc/passwords
2./usr/bin/htpasswd -b review_site/etc/passwords sela sela
- Step-7 訪問Gerrit網址
http://192.168.1.179:80
新建項目
image.png
然后可以通過如下命令克隆代碼 :
git clone http://192.168.1.179:8080/test1
提交代碼流程
- 1.添加Gerrit賬號
/usr/bin/htpasswd -b review_site/etc/passwords guest guest
- 2.添加Ubuntu用戶
sudo adduser guest
su guest
- 登錄gerrit網址
http://192.168.1.179:80
- 4.Git配置
執行:ssh-keygen -t rsa
復制 ~/.ssh/id_rsa.pub 到Gerrit SSH Public keys
- commit模板
git config --global commit.template ~/.git_msg
git config --global core.editor vim
git config --global user.email "郵箱地址"
git config --global user.name "guest"
- 6.push的密碼
當push代碼到遠程的時候,會提示輸入用戶名和密碼。其中用戶名是guest,密碼可以復制Gerrit網址中的HTTP password頁面。 - 權限管理
注意:默認,普通用戶沒有提交代碼和review代碼的權限。只有管理員有這個權限
image.png
可以按照如下配置給普通用戶添加權限:
image.png
常見問題
- Git代碼庫在哪里?
./review_site/git/ProjectName
- Gerrit和git代碼庫應該在通一臺機器上。
- Gerrit 錯誤log如何查看?
tail -f ./review_site/logs/error_log
- 查看git配置
git config --global --list
- 機器重啟后,如何重啟Gerrit?
service apache2 restart
./review_site/bin/gerrit.sh restart
-
GMS等較大文件,給對應成員添加push權限,不會在Gerrit中有記錄
修改對應Project的Access權限。
image.png - 提交代碼步驟
git add 文件名
git commit
git pull --rebase
git push origin HEAD:refs/for/master
- 采用HTTP認證,每次push都要輸入用戶名和密碼
git config --global credential.helper store
- 采用SSH方式,只需要在Project地方點擊下SSH