很多系统(例如Linux)已经默认提供了Git,在Git主页也可以找到安装程序。对于Windows用户,最好的选择是MsysGit。请注意,如果你安装了Apple Developer Tools (for Xcode 4),那么其中已经自带Git二进制包了。如果遇到了问题,help.github.com中可以找到很多非常出色的指南。
因为所有的Git提交都带有作者和电子邮件地址,如果你还没有设置过这些内容,请执行以下命令进行配置:
$ git config --global user.name "Alex Blewitt" $ git config --global user.email Alex.Blewitt@example.com
最好有一个Git代码库。Gerrit在初始化阶段会自动扫描Git代码库,这样做比在后期配置代码库容易一些,因此最好在初始化Gerrit前准备好Git代码库。
如果还没有Git代码库,可以创建一个:
git init --bare /path/to/gits/example.git
Gerrit
可以从http://code.google.com/p/gerrit/下载到Gerrit,那是一个WAR文件。Gerrit有很好的文档(目前的最新文档是2.2.1,但也可用于2.1.7)和安装指南。
Gerrit在运行时需要用到数据库(用于存储代码审查的信息)。目前支持的数据库包括H2、PostgreSQL和MySQL。在没有进行额外配置的情况下,它默认使用H2。
请注意,Gerrit 2.2.x正把项目配置、权限和其他元数据移到Git存储中,这样就可以通过Git进行访问和版本控制。在2.2.x中,这个转变会慢慢扩展到其他类型的元数据上,包含代码评审内容。详见2.2.0版本的发布说明。
要初始化Gerrit,运行java -jar gerrit.war init -d /path/to/location会在指定路径上安装Gerrit运行时。
如果是在交互终端中运行的,安装程序会提几个问题,例如:
- Git代码库的位置 [git]
- 导入现有代码库 [Y/n]
- 数据库服务器类型 [H2/?]
- 身份验证方法 [OPENID/?]
- SMTP服务器主机名 [localhost]
- SMTP服务器端口 [(default)]
- SMTP加密 [NONE/?]
- SMTP用户名
- 以何种身份运行 [you]
- Java运行时 [/path/to/jvm]
- 将gerrit.war复制到/path/to/location/bin/gerrit.war [Y/n]
- 监听地址 [*]
- 监听端口 [29418]
- 下载并安装Bouncy Castle [Y/n]
- 位于HTTP反向代理之后 [y/N]
- 使用SSL [y/N]
- 监听地址 [*]
- 监听端口 [8080]
其中大部分可以保留默认值,但是有几个需要重点关注。
- Git代码库的位置要指向正确的位置。默认值是位于安装目录中的'git'目录,也可以是其他不同位置(例如/var/gits等等)。应该先配置好这个路径,因为在Gerrit启动时它会先扫描该目录来添加新项目。
- 监听地址对有多个地址(例如IPv4和IPv6)的主机很有用,它可以限定使用哪个地址。*表示本地主机上的任意地址。
- 监听端口是一个端口号。29418是默认的Gerrit SSH端口,而8080是默认的Gerrit Web端口。但是如果8080已经被别的应用程序占用了,那么你可能会想修改第二个端口。
- 身份验证方法确定了如何登录Gerrit。如果你想挂入某个现有的身份验证提供方(例如Google Accounts),那么可以使用OpenID。但对测试而言(还有上面提到的范例),可以使用development_become_any_account。键入?会显示一个可用方法的列表。
Gerrit启动后,会打开一个浏览器,显示Gerrit主页。登录的第一个用户将自动成为管理员;所有后续登录的用户都是无权限用户。如果你选择了development_become_any_account,在页面顶端会有一个Become链接,通过它可以进入注册/登录页面。
注册用户
为了使用Gerrit,你需要一个账号,生成一个SSH密钥对。在命令行中运行 ssh-keygen -t rsa -b 2048可以生成密钥对,将其放到你的.ssh目录中。如果你需要更多信息,可以访问这篇博文,这是我六年前写的SSH密钥相关文章。此外,GitHub 帮助页面中也有更多相关信息。
默认文件名为id_rsa(这是私钥)和id_rsa.pub(这是公钥)。你只能给别人公钥,千万别给别人私钥。
有了密钥,你就可以在Gerrit中注册新账户了。点击顶部右端的“Become”链接,然后再点击“New account”按钮,输入Git知道的名称和电子邮件(即上面用git config配置的),这些内容要完全匹配(包括大小写)。保存变更,然后选择一个唯一的用户名(填入了名称后点击'select username',例如demo)。
在'add SSH public key'文本框中,添加.pub文件中的公钥。如果你使用的是OS X,pbcopy < ~/.ssh/id_rsa.pub就可轻松搞定。记住要点击“Add”保存公钥。
点击Continue后应该就能登录到Gerrit的主窗口了。到目前为止一切还不错,现在可以测试SSH的连通性了。
键入ssh -p 29418 demo@localhost会尝试连接Gerrit服务器,会出现以下三者之一:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!