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搭建一个这样的平台,并解决可能出现的问题。 首先,ReviewBoard是一款开源的代码审查工具,它允许开发者提交代码供其他团队成员审核,提供了一个方便的...
ReviewBoard和Subversion(SVN)是两种常见的工具,分别用于代码审查和版本控制。本篇文章将详细介绍如何配置这两者以实现有效的代码审查流程。 首先,我们需要了解`Subversion(SVN)`。SVN是一个开源的版本控制...
### Jenkins + SVN + Maven + Java 自动化部署详解(Windows版) #### 一、Jenkins 安装与配置 **1. Jenkins 安装** - **下载安装**: 首先,从官方网址 (https://jenkins.io/download/) 下载最新的Jenkins安装包...
总结,Jenkins + SVN + Maven 的持续集成方案提供了一种自动化的方式,使得团队能够高效地进行开发和部署,减少手动操作,提高软件质量和稳定性。在实际环境中,这些组件可以分布在不同的服务器上,以实现更高效和...
在安装 SVN 之前,我们需要确保已经安装了 Java Development Kit (JDK),因为 SVN 需要使用 JDK 来编译和运行 Java 程序。安装 SVN 时,我们需要根据提示选择合适的安装目录和配置文件的位置。 maven 搭建 eclipse ...
总的来说,Apache+Trac+SVN的组合提供了一套强大的开源项目管理解决方案。通过集成版本控制、问题追踪和文档共享,团队可以高效协作,追踪代码变更,并管理项目进度。虽然初始设置可能需要一些技术知识,但一旦配置...
Cent OS上配置Apache2 + SVN Cent OS上配置Apache2 + SVN
Jenkins+Maven+Windows+svn+sonarqube持续集成平台搭建图文指南
在本文中,我们将详细探讨如何在Windows环境下安装和配置Trac、Subversion(SVN)以及Apache服务器,这对于初学者来说是一份宝贵的指南。首先,确保你已经准备好所有必要的软件包,包括Apache、SVN、TortoiseSVN、...
Apache Subversion(简称SVN)是一个开源的版本控制系统,常用于软件开发中的代码管理。Apache HTTP Server(简称Apache)是世界上最流行的HTTP服务器软件,能够提供Web服务。将Apache与SVN结合,可以创建一个集中式...
### Jenkins + Maven + SVN + SpringBoot 实现一键打包发布 #### 安装 Jenkins 1. **下载 Jenkins** 首先前往 Jenkins 官网下载 Jenkins,官网上提供了两个下载选项: - 如果用于公司环境,建议选择左侧的企业...
1. 添加Apache的SVN模块:`sudo apt-get install libapache2-svn` 2. 安装Subversion:`sudo apt-get install subversion` 三、配置Apache与SVN集成 1. 创建SVN仓库:`svnadmin create /var/svn/repo_name` 2. 配置...
而"svn服务器配置总结.txt"很可能是对上述配置过程的详细记录和总结,包含了各种可能遇到的问题及解决方案,对于后期维护和优化服务器配置非常有帮助。 总之,SVN作为一个强大的版本控制系统,能够有效地支持多人...
### Jenkins+SVN+Ant持续集成环境配置笔记 #### 一、引言 随着软件开发项目的日益复杂化,持续集成(Continuous Integration, CI)已成为现代软件工程中的一个重要组成部分。通过持续集成,团队能够频繁地集成代码...
在这个场景中,我们结合了Jenkins、Gradle、Subversion(SVN)以及Windows环境来创建一个自动化的Android应用构建流程。以下是关于这个主题的详细解释: 1. **Jenkins**:Jenkins是一个开源的持续集成服务器,可以...
### Apache+SVN+MySQL+PHP+SVNManager+BugFree 完全安装手册 #### 一、Apache+SVN 安装与配置 ##### 1. 安装 Apache 2.2.9 在安装 Apache 之前,请确保你的计算机运行的是 Windows 2000、Windows XP SP1 或 ...
【Ubuntu+svn+ssl+ldap】的安装及集成是一个复杂的过程,涉及到Ubuntu操作系统、Subversion (SVN) 版本控制系统、SSL安全套接层以及Lightweight Directory Access Protocol (LDAP) 用户认证。以下是对这些技术的详细...
【标题】:“基于Maven+SVN自动打包” 在软件开发过程中,自动化构建与版本控制是提高效率的关键步骤。本文将深入探讨如何结合Maven和SVN实现项目的自动打包流程,帮助开发者更有效地管理和部署代码。 【Maven】:...
### Jenkins+Maven+SVN快速搭建持续集成环境 #### 一、Jenkins与持续集成概念 持续集成(Continuous Integration, CI)是一种软件开发实践,开发者频繁地将代码提交到共享仓库,每次提交后,自动构建(包括编译、...