2011-05-17 @ taobao
Gerrit 是一个基于 Web 的代码评审和项目管理的工具,面向基于 Git 版本控制系统的项目.
下文以gerrit-2.1.7-rc1在Ubuntu10.04上的安装为例:
$ sudo adduser gerrit2 $ sudo su gerrit2 $ cd ~gerrit2
安装Gerrit
下载gerrit-$version-rc1.war;
执行:
$ java -jar gerrit-$version-rc1.war init -d review_site
命令行交互的安装过程如下:
Create '/home/gerrit2/review-site' [Y/n]? *** Git Repositories *** Location of Git repositories [git]: *** SQL Database *** Database server type [H2/?]: *** User Authentication *** Authentication method [OPENID/?]: http Get username from custom HTTP header [y/N]? : SSO logout URL : *** Email Delivery *** SMTP server hostname [localhost]: SMTP server port [(default)]: SMTP encryption [NONE/?]: SMTP username [gerrit2]: [email protected]'s password : confirm password : *** Container Process *** Run as [gerrit2]: Java runtime [/usr/lib/jvm/java-6-sun-1.6.0.24/jre]: Copy gerrit.war to /home/gerrit2/review-site/bin/gerrit.war [Y/n]? Copying gerrit.war to /home/gerrit2/review-site/bin/gerrit.war *** SSH Daemon *** Listen on address [*]: Listen on port [29418]: Gerrit Code Review is not shipped with Bouncy Castle Crypto v144 If available, Gerrit can take advantage of features in the library, but will also function without it. Download and install it now [Y/n]? Downloading http://www.bouncycastle.org/download/bcprov-jdk16-144.jar ... OK Checksum bcprov-jdk16-144.jar OK Generating SSH host key ... rsa... dsa... done *** HTTP Daemon *** Behind reverse proxy [y/N]? y Proxy uses SSL (https://) [y/N]? Subdirectory on proxy server [/]: Listen on address [*]: Listen on port [8081]: Initialized /home/gerrit2/review-site Executing /home/gerrit2/review-site/bin/gerrit.sh start Starting Gerrit Code Review: OK
上面大部分的回答是用回车默认的, 值得注意的地方有:
$ sudo apt-get install apache2
在/etc/apache2/httpd.conf中加入一下内容
<VirtualHost *> ServerName gerrit2.example.com ProxyRequests Off ProxyVia Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> <Location /login/> AuthType Basic AuthName "Gerrit Code Review" AuthBasicProvider file AuthUserFile $gerrit.home/etc/passwords Require valid-user </Location> ProxyPass / http://$gerrit.host:8081/ </VirtualHost>
注意, ProxyPass中$gerrit.host最好用服务器对外的ip地址代替.
由于是通过apache进行http basic认证, 故账户创建使用类似下面的命令即可:
$ htpassword $gerrit.home/etc/passwords $username
使用上面创建的帐号, 登录http://$gerrit.host,浏览器会自动跳转至注册页面, 输入Full Name, 保存;
这里顺便可完成公钥的上传
点击Continue, 完成注册.
添加公钥后, 最好在$User.Home/.ssh中创建文件config, 里面输入以下内容:
Host $shortname User $username Port 29418 Hostname $gerrit.host IdentityFile $path/to/private/key$
这个文件是可选的, 只是为了方便执行ssh命令.
创建项目就通过下面的命令完成:
$ ssh $gerrit.host gerrit create-project -n $project.name
这个命令会在$gerrrit.home/git下初始一个bare库, 相应的在webUI中也可看到新建的项目了.
更多命令行, 请见这里.
上述大部分内容参考了这篇blog,你也可以看看. 剩下的就靠官方文档和Google了, Good luck!