代码审查 batnami review board 2.5.9 安装及配置心得

164960707@qq.com · 2017年04月14日 · 最后由 catcher 回复于 2017年04月18日 · 12 次阅读

本周研究了一下 code review 工具,有一些关于安装和配置的心得,简单地 mark 一下
1.安装
为了方便,选用 batnami 版本: https://bitnami.com/stack/reviewboard-plus-powerpack/installer
包含 windows 和 linux 版本,都为 2.5.9
因为目前公司使用的 vcs 是 hg(mercurial),所以需要在 repo 中连接 hg,但不知是因为个人安装原因还是其他,安装后在安装目录中没有 mercurial 和 svn 目录,只有 git 目录,解决方案为升级到最新版本,步骤如下:
0.stop all services
1.Back up the "E:\Bitnami\reviewboard-2.5.9-0/apps/reviewboard"
2.cd E:\Bitnami\reviewboard-2.5.9-0\python\Scripts
3.easy_install -U ReviewBoard
4.start mysql service
5.rb-site upgrade "E:\Bitnami\reviewboard-2.5.9-0\apps\reviewboard\htdocs\rb-sites\reviewboard"
这步如果报错"pkg_resources.DistributionNotFound:cryptography>=1.8.1",请先升级 pip 到最新版本,然后 pip install cryptography,猜测其他的模块缺失问题也是相同的 solution
6.restart all services and login
而 linux 下用 root 或者 sudo,执行./reviewboardpowerpack-2.5.9-0-linux-x64-installer.run,安装后没有任何问题
PS:在安装过程中会让你创建一个用户名密码,切记这个密码也是 mysql 数据库的 root 用户的密码

2.配置
用创建的用户名密码登陆后,切换到 admin 角色,创建和 hg repo 的链接,见 addrepo.png
在配置 repo 时,见 configrepo1.png,感觉 Path 字段可以选择 local 或者 remote 的 repo 路径
配置好 repo 后,就是将 code change post 到 review board 上了,可以使用各个 CVS 的相关的 plugin(如果使用 hg 的话,我用的是 ReviewboardExtension,见第三节),或者使用 review board 自带的 RBTools,见 configrepo2.png 和 configrepo3.png.其中要注意的是必须将.reviewboardrc 文件,放在 checkout 出来的代码库文件夹中,否则 rbt post 会报错:unable to find a review board server for this source code tree
目前我的.reviewboardrc 文件内容如下(可以适当裁剪)

REVIEWBOARD_URL = 'http://127.0.0.1:81/reviewboard/'
REPOSITORY = 'NGRemote'
GUESS_FIELDS = 'yes'
USERNAME = 'user'
PASSWORD = 'yourrbpassword'
SUBMIT_AS = 'test1'

其中每个参数的意义详见:https://www.reviewboard.org/docs/rbtools/0.7/rbt/commands/post/#cmdoption-rbt-post--summary

这样在 checkout 出来的代码库文件夹中执行:
rbt post --summary "hello" --description "world"
用 test1 用户登陆,会发现一条新的 post request,点进去之后,选择 reviews,在 postchange1.png 中我选择了 user,然后点击 publish,这样这条 request 就 pass 到 user 这个用户
注销 test1 用户,用 user 登陆,发现一条 post request,如图 postchange2.png, 点击后点 “” Diff“” 页签,可以看到差异,如果通过的话点击 ship it,如图 postchange3.png
切换回 test1 用户,点击之前的 post requeset,如图 postchange4.png

3.ReviewboardExtension
如果使用 hg,可以用 hg extension,配置方法详见https://www.mercurial-scm.org/wiki/ReviewboardExtension 下面是我的 mercurial.ini 的部分内容:
[extensions]
mercurial_keyring =
mq =
# 注意这里配置的是 extension 的目录位置
reviewboard = E:/hgreviewboard/

[reviewboard]
#REQUIRED ITEMS:
server = http://10.10.2.111:81/reviewboard/

#OPTIONAL ITEMS:
user = user
password = password
#target_groups = ... #default review groups
#target_people = ... #default review people

[hooks]
incoming = hg postreview -i NGRemote -p $HG_NODE

在 TortoiseHg 的 Hg workbench 中的 changeset 上右击,会出现 “” Post to Reivew Board“”,和 reviewboard 自带的 RBTools 功能差不多,但 RBTools 对 git,svn,hg 都通用

目前存在问题: 使用 ReviewboardExtension 时 In the .hg/hgrc file of the repository, add this while substituting REVIEW_BOARD_REPOSITORY_ID:

[hooks] incoming = hg postreview -i REVIEW_BOARD_REPOSITORY_ID -p $HG_NODE

这个 hook 不论是加在 mercurial 还是.hg/hgrc 都不 work

以上就是个人关于 review board 的一些简单的心得,关于细节还需要继续研究,希望抛砖引玉,共同进步

请教一个问题,怎么在一个不能连接外网的服务器环境上安装 RBTOOLS? 在 github 上下了源码安装但是还是要涉及到连接外网去下载导致安装失败?

#1 楼 @catcher 我是在 windows 上装的 exe,Linux 上不能接连外网,可能需要在能上外网的机器上依次下载好依赖包的 rpm,上传到不能上外网的服务器上再安装吧,可以在 QQ 群或者微信群里问下大牛们

#2 楼 @164960707@qq.com 下载的 egg 文件和 rpm 文件安装的时候也要连接外网安装文件。。。 关键内网机不能去连外网,能连一下都能解决

需要 登录 后方可回复。