回忆之城
生命在于折腾
posts - 575,comments - 9,trackbacks - 0

Subversion是目前主流的版本管理工具之一,在很多项目的开发中我们都可以看到它的身影。
每次fix bug并提交代码到SVN,必然会有一些文件更新(或增加、或删除),那么如何将这些文件的更新信息同BugFree中被fix的Bug有机的结合起来呢?下面的内容能够帮助你实现这一目的。

一、准备工作

  • 安装/升级至BugFree2.0.2
  • 在Subversion的服务器上安装php
  • 安装 ViewVC(一种web端浏览Subversion的工具)。如果没有比较版本历史差异的需求,可跳过此步骤
  • 下载BugFreeforSVN.tar.gz

BugFreeforSVN.tar.gz中的文件说明:

  •  svn_ci.php :用于向BugFree提交svn信息的php脚本。你可以将此文件放置在Subversion服务器的某个目录,如:/somwhere/svn_ci.php
  • post-commit:svn每次成功提交后触发的钩子脚本。应将此文件放置在代码库的hooks目录中,如:/home/svnadmin/repos/yourproject/hooks/。一般情况下,你应该给该文件设置可执行权限。
      cd /home/svnadmin/repos/yourproject/hooks/
      chmod +x post-commit
  • post-commit.bat:功能同上,用于windows平台
  • class.http.php:第三方的http类文件。你也可以到 http://www.phpfour.com/lib/http 自行下载

二、修改配置

修改svn_ci.php:

  • define(’API_NEWLINE’, chr(0×03));  // API行分隔符,默认不用修改
  • define(’API_DEVIDER’, chr(0×04));  // API列分隔符,默认不用修改
  • define(’API_KEY’, ‘YOUR_KEY’);     // API加密KEY,请参考BugFree的Include/Api.inc.php中的值进行修改
  • define(’API’, “http://127.0.0.1/bugfree/api.php”);  // BugFree的api地址
  • define(’USER_NAME’, ‘admin’);    // 用于向BugFree提交svn信息的用户名(建议设为管理员之一,这样可以修改所有的Bug)
  • define(’USER_PASSWORD’, ‘e10adc3949ba59abbe56e057f20f883e’); // 用户加密后的密码(默认是md5(原始密码))
  • define(’VIEWVC’, ‘http://bugfree.svn.sourceforge.net/viewvc/bugfree/’); // ViewVC查看代码的根地址

修改post-commit:

  • PHP_EXE=’/phppath/php’  #php可执行文件的路径
  • CHECK_IN_PHP=’/somwhere/svn_ci.php’    #svn_ci.php的路径
  • SVN_LOOK_EXE=’/svnpath/svnlook’   #svnlook可执行文件的路径

windows平台下post-commit.bat的修改可参考post-commit

三、如何使用

每次提交代码时,在注释里填写含有” fix bug #123” 等类似格式的信息,就会把相应的文件更新信息提交到BugFree中。

例:

  1. 修改文件branch/BugFree2.0_demo/Bug.php
  2. 提交修改,假设此次fix的Bug号为123: svn ci -m ‘ fix bug #123 ‘
  3. 查看BugFree中Bug号为123的Bug,则会发现其多了一行类似以下格式的注释:

2008-08-08 08:08:08 Edited by admin

Changeset [559] by leeyupeng, 2008-08-08 08:08:08 +0800 (Fri, 8 Aug 2008)

U   branch/BugFree2.0_demo/Bug.php  [diff]

注释说明:

  •  [559]:提交后的版本号
  • leeyupeng :提交人
  • 2008-08-08 08:08:08 +0800 (Fri, 8 Aug 2008):提交时间
  • U   branch/BugFree2.0_demo/Bug.php:修改的文件列表。若一次提交有多个文件被修改,则分行显示
  • [diff] :与前一版本的差异比较链接

四、其他说明

关于提交信息的格式:

一次提交可能修改了多个bug,那么我们在svn提交填写提交信息时,多个Bug号可以用空格、英文逗号隔开。
如下格式都是可以的:

fixbug #123 #456
lee fix bug #123,#456
fix  bug    #123,  #456
fix bug #123, #456. God!

每个Bug号开头用#标识,并保证文字fix bug 和第一个Bug号之间不少于一个空格。

当然,这可能并不符合你所在团队的习惯,你可以通过修改svn_ci.php中35行附近的正则表达式:/fixs*bug…/i来定制自己的message格式 :-)。

关于diff链接 :

你可能没有安装ViewVC,或者有其他Web方式浏览版本库的工具,那么可以通过修改 svn_ci.php中60行附近的$note .= ‘ [url=’ . VIEWVC . $fileName . ‘?r1=’. $pre . ‘&sortdir=down&r2=’ . $rev . ‘&sortby=log][diff][/url]’;来定制链接参数。

参考文章

posted on 2013-03-27 09:19 回忆之城 阅读(486) 评论(1)  编辑 收藏 引用 所属分类: 测试技术相关unix/linux

FeedBack:
# re: 【转】BugFree和SVN的整合
2014-09-10 11:14 | 李多多
如果有BugFreeforSVN.tar.gz包请联系我,可以发我邮箱1002556061@qq.com,万分感谢  回复  更多评论
  
只有注册用户登录后才能发表评论。