要集成Mantis和SVN,需要几个工具:
SVN客户端,有个windows下的很不错的工具,TortoiseSVN,完全集成在explorer里,下载地址: http://tortoisesvn.net/
SVN服务端,这个应该都有吧。
Mantis缺陷跟踪系统,用php开发。轻量级的缺陷跟踪系统。 http://www.mantisbt.org/
首先先在TortoiseSVN里设置一下项目的属性,右键点击目录,属性,在subversion一栏里,加入这几个属性
bugtraq:label = issue
bugtraq:url = http://<mantisserver>/mantis/view.php?id=%BUGID%
bugtraq:message = issue %BUGID%
bugtraq:warnifnoissue = true
到对应的SVN版本库里,找到hooks目录,建立一个post-commit.bat文件,将以下内容拷入:
REM Post-commit hook for MantisBT integration
SET REPOS=%1
SET REV=%2
SET DETAILS_FILE=E:/svnrepo/log/svnfile_%REV%
SET LOG_FILE=E:/svnrepo/log/svnfile_%REV%_Log
set APR_ICONV_PATH=F:/software/svn-win32-1.4.2/iconv
set path=%path%;e:/software/php;F:/software/svn-win32-1.4.2/bin;
echo ****** Source code change ******>>%DETAILS_FILE%
svnlook log -r %REV% %REPOS%>>%DETAILS_FILE%
echo SVN Revision:%REV%>>%DETAILS_FILE%
svnlook diff -r %REV% %REPOS%>>%DETAILS_FILE%
php.exe E:/www/mantis/core/checkin.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里对应的条目里写入你提交时输入的这些内容。