Reviewboard是一个开源个人可以免费使用的代码评审框架,貌似现在有越来越多的公司也开始使用reviewboard作为公司的代码评审工具。
今天早上试了一下,搭建过程非常方便简单,按照网页提示即可完成,比较人性化。公司里使用的话,支持LDAP,直接导入账户,方便。
安装指导如下页面:
https://www.reviewboard.org/docs/manual/2.5/admin/installation/linux/
1.前期需要安装, 数据库以及web服务器,我选的是mysql+Apache,百度一下怎么安装即可。
mysql:sudo apt-get install mysql-server
Apache: sudo apt-get install apache2
2.sudo -i 进入root账户,免去每次加sudo,按照网页提示安装如下工具:
apt-get install python-setuptools
apt-get install python-dev
apt-get install memcached
easy_install python-memcached
apt-get install patch
easy_install ReviewBoard
apt-get install python-mysqldb
3.安装代码控制组件,可以按照自己的实际情况选装,我是全部都装了省事:
apt-get install cvs
apt-get install git-core
easy_install mercurial
easy_install P4PythonInstaller
easy_install subvertpy
apt-get install subversion python-svn
4.以上的工具安装完之后配置一下mysql以及创建一下数据库和账户:
编码模式:
[client]
default-character-set=utf8 [mysqld]
character-set-server=utf8
创建账户(注意下面的myuser和mypassword替换成你自己的实际用户名和密码):
$ mysql -u root -p
mysql> CREATE DATABASE reviewboard CHARACTER SET utf8;
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
mysql> GRANT ALL PRIVILEGES ON reviewboard.* to 'myuser'@'localhost';
5.开始安装:
rb-site install /var/www/reviews.example.com
这中间要做填一些选项,根据你之前的选择来填,比较简单的,注意看一下填就好(domainName自己测试直接填本机ip)。
完了还要按照提示配置一下(实际要chown的比下面的还要多两个,看最后完成的提示把另外两个加上去):
$ chown -R www-data /var/www/reviews.example.com/htdocs/media/uploaded
$ chown -R www-data /var/www/reviews.example.com/data
6.然后开始配置Apache:
$ cd /etc/apache2/sites-available
$ cp /var/www/reviews.example.com/conf/apache-wsgi.conf reviews.example.com.conf
$ cd ../sites-enabled
$ ln -s ../sites-available/reviews.example.com.conf .
然后打开浏览器,输入之前domainName的ip,应该就可以打开reviewboard的网页了,用你在步骤5里面输入的管理员账户密码来登录。
在配置里面把你的代码仓库加进去(加完会提示你去代码仓库下面加一个.reviewboardrc文件,文件的内容也在setup里面有的),创建代码评审组,添加新用户,添加代码评审邮件通知。
7.这个时候应该还没有rbt这个工具,仍然到reviewboard网站上去下载,应该有提供代码仓库可以直接下载的:
git clone git://github.com/reviewboard/rbtools.git
安装方法下载的代码里面有,看INSTALL说明。
8.最后试着去修改一下代码,rbt post一下,看看能不能发布代码评审到网页上,并且邮箱提示所有小组内的同事。
非常简单的几步就完成了,如果中间有遇到什么问题,胆大心细看提示。
因为只是个人试用,如果公司使用的话,建议接入LDAP,然后搞一个局域网内正常的DomainName,就完美了,公司应该会有自己专门的邮箱的。
问题解决:
晚上找了个室友测试了一下这个环境,结果遇到一个问题,我这里提交好好的,他提交就一直返回HTTP 400,API 224的错误,查了错误索引,是diff文件解析不对。
各种排查,结果最后发现室友把自己的代码仓库的svn密码输错了,所以reviewboard根本没有连上他的代码仓库,diff文件生成之后也就无从解析生产review了。