最近入职新公司实习,随着组内成员的增加,版本控制和代码审核等团队协作方面的问题已经不是公司原有 SVN 系统所能完美解决的,于是我和小伙伴就琢磨着搭建了 GitWeb + Gerrit 服务。下面分享下搭建 Gerrit-2.11 的全过程。
前期准备
Git
1 | $ git --version |
Java 环境
1 | $ java -showversion |
Apache 配置
因为团队在 Gerrit 使用上选择了 HTTP 的认证方式,需要 Apache 进行反向代理。如果系统默认安装的 Apache 已经包括了反向代理的模块,不用重新安装。在路径/private/etc/apache2
找到httpd.conf
文件打开并在末尾添加如下设置:
1 | Listen 80 |
设置修改后保存并重启 Apache 服务:
1 | $ sudo /usr/sbin/apachectl restart |
安装 Gerrit
到 Google 官方下载 Gerrit 安装的 war 包,终端切换到安装包所在路径并执行如下命令:
1 | $ java -jar gerrit-2.11.war init -d review_site |
该命令将在所在路径下创建review_site
文件夹,安装 Gerrit 。进入交互式安装过程后一路回车使用默认设置即可,需要注意我们这里使用了 HTTP 认证方式,并启动了反向代理。安装后可在./review_site/etc
路径找到gerrit.config
文件,可以在这里修改自定义配置。最终该配置文件内容如下:
1 | [gerrit] |
配置管理员登陆密码
使用 HTTP 认证方式需要提前指定一个 admin 用户用于登陆,该信息最好保存到 Apache 根目录下,如果保存到其他目录,在启动 Gerrit 服务时可能会引发服务器访问权限的错误。
先切换到上文 Apache 配置中认证用户文件保存路径/private/etc/apache2
,运行如下命令生成认证文件:1
2$ touch passwd
$ htpasswd -m passwd admin
在启动 Gerrit 服务后,用户通过 Web 登陆 Gerrit 服务器时,会弹出身份验证的提示框。输入正确的用户名(admin)和密码即可进入 Gerrit 主页面。
安装 GitWeb
如果想要随时随地通过 Web 浏览器查看提交到 Gerrit 的代码,需要安装 GitWeb 来建立一个基于网页的简易查看器。可以先在某个 Git 工程目录下运行:
1 | $ git instaweb --httpd = webrick |
查看 GitWeb 的效果。但如果想要持续地运行这个页面,需要通过 Web 服务器来设置 CGI 脚本。
手动安装 GitWeb 要先获得 Git 的源代码,并生成自定义的 CGI 脚本:
1 | $ git clone git://git.kernel.org/pub/scm/git/git.git |
现在,在上文提到的 Gerrit 配置文件打开,添加如下内容:
1 | [gitweb] |
再重启 Gerrit 服务即可在项目列表页面看到对应项目的 GitWeb 链接。