集成SVN源码管理和Mantis缺陷跟踪

发表于:2015-4-01 11:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ㄓㄤㄑㄧㄤ    来源:51Testing软件测试网采编

  要集成Mantis和SVN,需要几个工具:
  SVN客户端,TortoiseSVN,下载地址: http://tortoisesvn.net/
  SVN服务端,这个应该都有吧。
  Mantis缺陷跟踪系统 http://www.mantisbt.org/
  首先在TortoiseSVN里设置一下项目的属性,右键点击目录,属性,在subversion一栏里,加入这几个属性
  bugtraq:label = issue
  bugtraq:url = http://%3cmantisserver%3e/mantis/view.php?id=%BUGID%
  bugtraq:message = issue %BUGID%
  bugtraq:warnifnoissue = true
  到对应的SVN版本库里,找到hooks目录,建立一个post-commit.bat文件,将以下内容拷入:
REM Post-commit hook for MantisBT integration
rem REPOS svn版本库的路径
rem REV 版本信息
rem DETAILS_FILE 是版本库的目录,在版本库目录下建立一个log的目录,用来存放日志
rem set PHPRC=D:\EasyPHP\apache 默认会使用windows 目录下的 php.ini 修改后,读取 easyphp\apach 目录下
rem 拷贝了 checkin.php 进行修改,重新命名 为 checkin_svn.php 如果有中文传输,需要修改 checkin_svn.php
rem 增加抓换函数 $t_comment = mb_convert_encoding($t_comment, "utf-8","GB2312");
rem 修改位置在 “ foreach ( $t_issues as $t_issue_id ) { ”前面
rem mb_convert_encoding 此函数需要扩展文件php_mbstring.dll的支持~~
rem $t_comment   = iconv("UTF-8","GB2312//TRANSLIT",$t_comment);  据说这个编码转换效率更高
SET REPOS=%1
SET REV=%2
SET DETAILS_FILE=D:\svn\no1\log\svnfile_%REV%
SET LOG_FILE=D:\svn\no1\log\svnfile_%REV%_Log
set APR_ICONV_PATH=D:\EasyPHP\Subversion\iconv
set PHPRC=D:\EasyPHP\apache
set path=%path%;D:\EasyPHP\php5;D:\EasyPHP\Subversion\bin;
echo ****** Source code change ******>>%DETAILS_FILE%
echo SVN 修改人: >>%DETAILS_FILE%
svnlook author -r %REV% %REPOS%>>%DETAILS_FILE%
echo SVN 修改日期: >>%DETAILS_FILE%
svnlook date -r %REV% %REPOS%>>%DETAILS_FILE%
echo SVN 版本:  >>%DETAILS_FILE%
echo %REV%>>%DETAILS_FILE%
echo SVN 提交注释: >>%DETAILS_FILE%
svnlook log -r %REV% %REPOS%>>%DETAILS_FILE%
echo SVN 修改明细: >>%DETAILS_FILE%
svnlook diff -r %REV% %REPOS%>>%DETAILS_FILE%
rem php.exe .\checkin_svn.php 信息文件日志文件
php.exe D:\EasyPHP\www\mantis\core\checkin_svn.php <%DETAILS_FILE%>%LOG_FILE%
del %DETAILS_FILE%
del %LOG_FILE%
  最后,修改mantis安装目录下的config_inc.php,加入以下内容(mantis系统里要有SVN用户):
  $g_source_control_notes_view_status = VS_PUBLIC;
  $g_source_control_account = 'SVN';
  $g_source_control_set_status_to = OFF;
  $g_source_control_regexp = "/\bissue [#]{0,1}(\d+)\b/i";
  完成这些步骤后,就可以在SVN提交新版本时,同时发布内容到对应的缺陷跟踪系统了。
  比如,修改了一个源文件,svn commit时,在右上的issue栏目里输入要提交到的具体的 issue/bug  编号,
  然后在下面的message框内输入具体的描述,svn的hook就会自动往mantis里对应的条目里写入你提交时输入的这些内容。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号