http://blog.csdn.net/lanphaday/article/details/7162907
我们团队在开发《天下盛境》项目的时候,制定和执行了比较好的 code review 策略,总结下来有几个优点:一是代码风格可控,代码质量有一定提升;二是新员工入职后能够得到更多人的指导,成长非常快;三是小 bug 频出的情况比我做《天》之前的项目少了至少一个数量组。当时我们的 code review 策略是这样的:
使用 reviewboard 作为工具,通过 SVN hooks 强制每一次签入都是经过 review 的;
至少要有 2 个团队成员 ship it,才能够签入。
ship it 的成员中,至少有一个是资深的团队成员。
code review 是如此的有效,以至于我经常向朋友推荐,有一些朋友使用之后,觉得把 reviewboard 跟 SVN 结果起来还是蛮有挑战的,主要是编写 SVN hooks 还是需要学习不少东西,所以基本上他们都放弃了。今天我把 reviewboard-svn-hooks 项目修改、发布出来,方便大家使用。
安装
因为项目已经提交到 pypi(http://pypi.python.org/pypi/reviewboard-svn-hooks),所以简单地在命令行执行:
view plain
easy_install reviewboard-svn-hooks
就可以安装成功了,安装时,可能需要管理员权限(linux/windows都可能需要)。
配置
安装后,需要对 reviewboard-svn-hook 项目进行配置。根据操作系统的不同,存储配置文件的目录也是不同的。在 linux 系统下,它的位置是在 /etc 下,在 windows 系统下,它的位置在 %ALLUSERSPROFILE% 目录下(具体指哪个目录,请参考http://en.wikipedia.org/wiki/Environment_variable#Default_Values_on_Microsoft_Windows)。在本文中,以 $CONFDIR 指代之。打开 $CONFDIR/reviewboard-svn-hooks/conf.ini 文件,解释如下:
view plain
[common]
# 是否记录 debugging 输出,0 为不输出,其它值为输出
debug = 0
[reviewboard]
# reviewboard 的网址
url=
# reviewboard 的用户名密码,这样才能够通过 http API 访问到 reviewboard 中的 review request 的状态
username=
password=
[rule]
# 最少需要有几个 ship it
min_ship_it_count =
# 最少需要有几个专家 ship it
min_expert_ship_it_count =
# 专家的 reviewboard 用户名,使用半角逗号分格
experts =
SVN hooks 配置
假定你的 SVN 仓库目录的 $REPOS,并且人来没有设置过 SVN hooks。打开 $REPOS/hooks 目录,把 pre-commit.tmpl 改名为 pre-commit,如果是 linux 系统,记得加上执行权限。
用文本编辑器打开 pre-commit 文件,把里面的内容全部删除掉,替换为下列内容:
view plain
REPOS="$1"
TXN="$2"
strict_review $REPOS $TXN
exit $?
至此,配置就完成了。如果你之前已经配置过 pre-commit,请参考上述脚本自己想办法调用 strict_review 应用程序。
与已经使用过的 reviewboard 集成
如果你之前已经使用 reviewboard 做过若干次 code review,那么你还有一步工作需要做:把之前使用过的 review request id 废掉。首先请找出并记下你们使用过的最大的 review request id,然后在命令行执行如下命令:
view plain
init_used_rid_db CONFDIR/rb-svn-hooks-used-rid.db MAX_REQ_ID
其中 CONFDIR 的值在上文已经提到,MAX_REQ_ID 就是前面说的使用过的最大的 review request id。
其它
最后,如果在使用中有任何问题,请到 http://code.google.com/p/reviewboard-svn-hooks/issues/list 提 issue 告诉我。
分享到:
相关推荐
ReviewBoard + Tao-ReviewBoard + SVN + Eclipse (Mars.2) 如果eclipse中配置好Tao-ReviewBoard点确定时报错说用户名密码错误可能的原因 1 真的是你的服务器配置错了 清下缓存 再试试 如果Tao-ReviewBoard安装好了...
终极自动化测试环境搭建:Selenium+Eclipse+Junit+TestNG+Python
jenkins+maven+svn+tomcat 持续集成环境快捷部署,实现自动编译打包部署
Jenkins:Jenkins + gradle + svn + windows自动化编译,上传svn; apk注入svn源码路径,版本号,jenkins build号
持续集成环境maven+nexus+jenkins+svn搭建
自己总结的windows版本的jenkins+svn+maven自动部署,其中配合了少量文字和一些截图,希望对大家有所帮助。
大数据简历 内含三个项目: 项目一:联通大数据项目 项目名称: 移动终端上网数据...开发环境: eclipse+mysql+maven+jdk+svn 系统架构: hadoop+zookeeper+httpclient+htmlcleaner+hbase+redis+solr+flume+kafka+storm
jenkins + svn+maven持续集成
Apache+Trac+SVN安装测试指导
安装Trac+SVN+Apache过程的详细记录。解决像我一样的初学者初次安装的难题,高手就表看了...
文档为本人学习时总结整理,主要部分为jenkins的配置。由于环境不同,在实施时可能会遇到各种不同的报错,但大体思路就是这样的。
Cent OS上配置Apache2 + SVN Cent OS上配置Apache2 + SVN
Jenkins+Maven+Windows+svn+sonarqube持续集成平台搭建图文指南
jenkins+svn一键发布war包,简单、高效、便捷。操作简单。
centos 下apache+svn安装让你全面了解svn+apache的安装方法
ubuntu下Apache2+Svn详细配置
Jenkins+Maven+SVN快速搭建持续集成环境
svn服务器+svn客户端+svn服务器配置 我建立了一个金山快盘,将svn安装在快盘 在异地打开金山快盘,开启服务器即可同步svn中的工程。
apache+svn安装配置,服务器,客户端,汉化包 说明文档
由于目前intellij这个开发工具的使用率不是很高、加上maven的开发也不是特别普及,intellij+maven+svn的环境配置有很多人都不知道如何配置,本人也是各种搜集资料才搞好这么一个环境的搭建,觉得特别辛苦,就整理了...