RBTools perforce

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RBTools perforce相关的知识,希望对你有一定的参考价值。

http://www.aiuxian.com/article/p-921424.html

http://blog.sina.com.cn/s/blog_8d8f99440102ve2u.html

REPOSITORY是否设置错误导致?!

 

代码评审(Code Review)是敏捷开发很重要的一环,是保证软件质量的最佳实践之一。要做好Code Review, 就需要有一套简单,高效,功能完善且界面友好的工具链支持。

 

我所在的团队原来一直使用Code Striker做为Code Reivew的平台,但其对Perforce支持的不好,且界面不很友好,给我们带来不少麻烦,使用效果也打了折扣。从去年底,我们开始使用功能和界面都全面增强的Review Board,同时再加上少量的工具配置,就可以实现非常高效的Code Review平台。我刚刚完成服务器的迁移,所以写些心得,一来做为日后参考,二来也和各位朋友分享。

 

1. Review Board简介

Review Board(简称RB)是基于Django的网络应用,界面非常友好,功能也非常强大,包含一套完整的Review流程,支持现在几种流行的SCM工具和数据库。最感谢它网站FAQ里的一句,”Review Board is absolutely free for commercial use!“。它的开发人员来自大名鼎鼎的VMWare,其mail-list非常活跃,老大Christian Hammond([email protected] )也非常乐于助人。

 

技术分享

 

 


 

 

2. 服务器安装

RB可以安装在多种平台。本文是在WinXP SP3上安装, 其他平台请参考网站上其他文档。

 

请先安装Python 2.5和Apache Http Server 2.2。他们的安装略去不表,但请保证“C:/Python25;C:/Python25/Scripts”在你的环境变量里 。其他软件(针对Python2.5)我已上传到http://download.csdn.net/source/2403641。

 

0)安装和Python相关的一些东东

在软件包中,请安装mod_python, PIL,setuptools。这几个都是双击之后,一路NEXT即可。

 

1)安装memcached for windows(在软件包中)

先使用命令行memcached.exe -d install

安装服务,再去WinXP服务管理界面启动该服务。

 

然后用命令行

easy_install python-memcached

安装python-memcached. (NOTE: 最近发现easy_install也被墙了,所以用easy_install时可能有点问题。如果是那样,请找个代理,然后设置HTTP_PROXY环境变量FQ)。

 

2)安装数据库SQLITE(在软件包中)

软件包中是SQLITE,但RB还支持其他数据库。请到它家的网站找,安装也不困难。

 

SQLITE的安装很简单,只需把它的EXE放到PATH中某个路径即可。你可以直接扔到C:/Windows/system32下。呵呵。

 

然后再用 easy_install pysqlite, 安装相对应的python module.

 

3)安装GNU patch(在软件包中)

它的安装也是一路NEXT。安装完成之后,把它EXE所在的路径放到PATH里。

 

4)安装p4python25(在软件包中)

一路NEXT!如果你不是在使用p4,请去RB网站看其他SCM的安装方法。

 

5)安装RB

RB团队已经把它放到easy_install的源里了,所以可以用 easy_install ReviewBoard 安装,很方便吧。

 

好了,该装的都OK,下一站就是建站。

 

3. 建站

RB建站很简单,在命令行中打一句命令

 

rb-site install "站名"

之后,它会问你一会问题,比如用什么数据库,什么Http Server, 请按之前的安装回答。还会让你输入管理员密码之类的。
命令完成之后,会在当前工作路径下成一个的站名一样的目录。请到里面找到conf/apache-modpython.txt,这里面是一段apache server配置的片断,
请把这片断复制到真正的httpd.conf里。

4. RB中添加Repository

在建站完成后,你应该可以访问到RBweb页面。

 

技术分享

 

添加Repository, 需要用admin用户。这里就说说Perforce的配置吧。

首先有你在建站时用的admin用户登录,然后就会进入到Admin的页面(最上面有一个Admin的链接)。

技术分享
点击Repositories进入到SCM的配置页面。然后“Add Repository", 输入Perforce的相关参数。
技术分享
保存之后,Perforce就配置完成了。
RB的Admin页面做得非常友好,其他方面的配置,比如Email,站点信息之类的,我这里就不罗嗦了。大家点点就知道了!

5. 如何发布一个Review Request

关于这个问题,RB提供了一个好用的工具叫post-review。 对于使用Perforce的团队来说,这个工具更是极其好用。只要用这个post-review加上checklist-id就OK了。

 

下面让我们来配置一下这个工具(有些是专门针对Perforce的配置):

1) 保证在"cmd"下,p4命令是可用的。

2) 保证P4的几个相关环境变量设置了(P4USER, P4PASSWD, P4CLIENT, P4PORT )

3) 用”easy_install -U RBTools“ 安装post-review工具

4) 修改post-review的相关脚本(主要是我开始是配置在老版本的RB上,新的还不太知道能不能用,但我的一定可用。:) 大家到这个地方去下载http://download.csdn.net/source/2856000。) 修改分三步,第一,到C:/Python25/Scripts,删掉post-review.py, post-review.bat, post-review.exe; 第二,拷贝压缩包里的文件到C:/Python25/Scripts); 第三,打开post-review.py, 然后修改REVIEWBOARD_URL 那一行,用真实的URL替换。

5) 安装GNUDiff,这是用来生成diff文件的时候用的。别忘了,把diff加到PATH里,一般是这个路径"C:/Program files/GnuWin32/bin"。

 

好了,都配好了,下面让我们来post review吧。

 

1) 在你建的RB上,注册一个新账号;

2) 打开cmd, 用命令"post-review PendingChangelistId -o "

3) 第一次用这个命令,它会让你输入username和passwd,以后就不会了。

4) 上传DIFF之后,它会用默认的浏览器打开网页, 显示你刚上传的Request, 这时它处于draft状态。

5) 加上一些必要的信息, 比如谁来review之类的,然后就Pulish吧!

 

 

 

6. 关于和P4V的集成

使用其它SCM的这一段就不用读了。
P4V是一个非常好用的工用,它也非常容易和post-review集成,那就是使用external tools. 步骤如下:
1) 打开P4V
2) 选择menu Tools->Manage Custom Tools... 打开窗口
技术分享
3) 
New->Tool... and 打开窗口
技术分享
4) 可以按如下填写
技术分享
如果用"%p -o"
打开浏览器。
5) 然后在P4V里就可以使用了,如下图。
技术分享
6) Post-review之后就可以在RB里看到了。
技术分享

7 总结

RB的基础配置就这么多,它的网站上还有更丰富的内容,包括其他代码服务器的配置,RB升级,搬移等等。总的来说都是非常容易的。

 

BTW,用Perforce的朋友在提交Request时,可能会遇到一些关于权限的问题。我猜和P4服务配置有关。我问过chipx86, 他说会fix。不过在最新1.5中还没有改,所以我只好还用我自己的hack过的文件。如果有朋友遇到,可以告诉我,我会把文件发给你。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一.概述:
首先了解RBTools是什么?RBTools是reviewboard命令行客户端,可以使用命令行进行评审需求的相关操作。 Reviewboard支持pre-commit和post-commit两种review方式,在windows系统,RBTools 4.0以下版本是post-review命令实现,而RBTools 5.0版本开始都是rbt post命令实现。以下是pre与post的命令区别:
Pre-commit review:
post-review(创建新的Review请求,并post未提交的修改差异)
post-review –r 42(更改存在的Review请求)
Post-commit review:
post-review --revision-range=STARTREV:STOPREV
post-review --revision-range=REVISION
二.安装(安装所需要的包可点击这里):
1.首先是安装Python:
技术分享
2.设置Python环境变量,检测安装Python是否生效,命令行窗口执行:Python,截图如下:
技术分享
3.下载Python setuptools,找到ez_setup.py,然后在命令窗口执行该脚本:Python ez_setup.py,成功的话Python27目录下多了Scripts目录,目录里面有easy_install 等命令。接着将Scripts目录也放至环境变量。检测是否安装成功:
技术分享
技术分享
4.下载安装RBTools:命令行窗口执行easy_install -U RBTools,检测是否安装成功:
技术分享
5.下载安装subversion的命令行版本并将svn路径加至环境变量里:
技术分享
6.下载安装svn默认的diff工具diffutils,加至环境变量里:
技术分享
将diffutils安装目录bin下的所有内容copy到svn命令行客户端安装目录:
技术分享
技术分享

三.配置:
1.配置subversion库的属性,关联subversion和reviewboard
方法一:命令行执行svn propset reviewboard:url http://review.deppon.com 本地svn工作目录
如:svn propset reviewboard:url http://review.deppon.com d:\test2
如果当前目录是svn工作目录,那么可以这样:svn propset reviewboard:url http://review.deppon.com .
方法二:用更直观的图形工具来设置,以乌龟svn为例
技术分享
技术分享
2.在本地checkout的代码库文件夹中添加配置文件.reviewboardrc
技术分享
3.命令行:echo "" >.reviewboardrc
技术分享
4.编辑.reviewboardrc文件,内容如下:
REPOSITORY = "http://svn.deppon.com/project1"
REVIEWBOARD_URL = "http://review.deppon.com"
技术分享

5.见证奇迹的时刻到了,修改代码后使用rbt post提交到reviewboard服务器,第一次会要求输入svn账号及密码:
技术分享

技术分享
技术分享

注意:.reviewboardrc是隐藏文件,具体操作详见如下链接:
http://jingyan.baidu.com/article/f79b7cb3a61d699144023e26.html
四.问题:
问题1.
提示post-review不是内部命令
分析问题:不是内部命令问题一般都是系统环境变量没设置,但是经验证是设置好的,安装也是没有问题的,查了官方文档才得知RBTools 4.0以上版本在windows系统无法使用post-review,验证如下:
技术分享

技术分享
技术分享
使用rbt --help参看相关命令:
技术分享
解决方案是:使用rbt post命令提交
问题2.
使用rbt post又遇到了如下报错
技术分享

分析问题GNU diff is required in order to generate diffs. Make sure it is installed and in the path.
根据提示分析应该是diffutils没有加到系统环境变量,或者没有把diffutils的bin目录下内容放至svn命令行客户端安装路径。
解决方案:确保diffutils安装路径已加至系统变量,再把diffutils的bin目录下所有内容放至svn命令行客户端安装路径即可。
问题3.
rbt post可以提交成功,但是报系统错误“无法启动此程序。因为计算机中丢失libapr_tsvn.dll。尝试重新安装该程序以解决此问题。”
技术分享
分析问题:按照提示重新安装svn命令行客户端,或者直接下载libapr_tsvn.dll放至系统目录
推荐的解决方案:
A.按照提示重新安装svn命令行客户端并相应的配置环境
B.直接下载libapr_tsvn.dll放至系统目录C:\Windows\SysWOW64,再运行:regsvr32 libapr_tsvn.dll
技术分享

以上是关于RBTools perforce的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins Perforce 插件未从 Perforce 签出代码

Perforce(AWZ 服务器 Lightsail Windows 实例) - 虚幻引擎源代码控制 - 移动 Perforce 仓库

有没有办法在 Perforce 中进行代码检查?

如何在 perforce 和 VMS 上为 C++ 进行代码审查/调试/编码/测试/版本控制

Perforce:同步主数据但也直接下载派生数据

为啥 Visual Studio 2005 更喜欢“无”而不是 perforce 作为源代码控制提供程序