现在的位置: 首页 > 综合 > 正文

svn同mantis的整合实战(网上资料凌乱,自己做攻略)

2013年01月21日 ⁄ 综合 ⁄ 共 3020字 ⁄ 字号 评论关闭

1.准备资源:mantis1.26或更高;phpstudy2010(apache,php,mysql的集成环境);svn服务器及客户端;

2.建立好phpstudy的运行环境,phpinfo.php测试通过。在php.ini的配置文件中开启相关扩展(默认的已经足够了)。

3.mantis安装通过,并添加同svn相同的用户。密码不同不妨碍。

4.svn客户端,在该项目属性中添加

bugtraq:label = issue
bugtraq:url = http://192.168.0.8/mantis/view.php?id=%BUGID%
bugtraq:message = issue %BUGID%
bugtraq:warnifnoissue = true

根据自己的ip自己设置。

 

5.svn服务器对应项目的hooks里添加2个bat文件

内容如下:

(1)post-commit.bat

 

REM Post-commit hook for MantisBT integration
 
rem REPOS svn版本库的路径
rem REV 版本信息
 
SET REPOS=%1
SET REV=%2
SET DETAILS_FILE=I:\Repositories\mantis\log\svnfile_%REV%
SET LOG_FILE=I:\Repositories\mantis\log\svnfile_%REV%_Log
#set APR_ICONV_PATH=C:\Program Files\Subversion\iconv
set PHPRC=C:\phpStudy\Apache2
set path=%path%;C:\phpStudy\php5;C:\phpStudy\php5\ext;C:\Program Files\VisualSVN Server\bin;
echo ****** Source code change ******>>%DETAILS_FILE%
 
rem 进入svnlook目录
cd C:\Program Files\VisualSVN Server\bin
echo SVN 修改人: >>%DETAILS_FILE%
svnlook author -r %REV% %REPOS%>>%DETAILS_FILE%

echo SVN 提交注释: >>%DETAILS_FILE%
svnlook log -r %REV% %REPOS%>>%DETAILS_FILE%

echo SVN 修改明细: >>%DETAILS_FILE%
svnlook diff -r %REV% %REPOS%>>%DETAILS_FILE%

echo SVN 版本:  >>%DETAILS_FILE%
echo %REV%>>%DETAILS_FILE%

echo SVN 修改日期: >>%DETAILS_FILE%
svnlook date -r %REV% %REPOS%>>%DETAILS_FILE%

rem php.exe C:\www\mantis\core\checkin_svn.php 信息文件日志文件
cd C:\phpStudy\php5
php.exe C:\www\mantis\scripts\checkin.php <%DETAILS_FILE%>%LOG_FILE%
 
del %DETAILS_FILE%
del %LOG_FILE%

 

(2) pre-commit.bat

 

REM pre-commit.bat hook for MantisBT integration
SET REPOS=%1
SET REV=%2
SET DETAILS_FILE=I:\Repositories\mantis\log\svnfile_%REV%
SET LOG_FILE=I:\Repositories\mantis\log\svnfile_%REV%_Log
#set APR_ICONV_PATH=D:\TZSvn\Tool\SvnServer\iconv
set PHPRC=C:\phpStudy\Apache2
set path=%path%;C:\phpStudy\php5C:\Program Files\VisualSVN Server\bin;
 
rem 把注释信息写入到 DETAILS_FILE
svnlook log "%REPOS%" -t "%TXN%"  >>%DETAILS_FILE%
 
rem 执行checkin_svn_pre_commit.php 进行校验缺陷单号 是否在缺陷系统中存在,如果不存在,返回输出信息到 log_file中
php.exe C:\www\mantis\core\checkin_svn_pre_commit.php <%DETAILS_FILE%>%LOG_FILE%
 
rem 校验log_file中是否有内容,如果有内容,转入到出错提示
FOR /F "tokens=1,2* delims= " %%i in (%LOG_FILE%) do goto err
 
del %DETAILS_FILE%
del %LOG_FILE%
exit 0
 
:err
echo 缺陷单不存在,请正确填写缺陷单号,提交终止! 1>&2
del %DETAILS_FILE%
del %LOG_FILE%
exit 1

6.mantis默认是英文,可以更改为中文显示

打开文件:<mantisbt>\config_defaults_inc.php,
查找$g_default_language
修改:$g_default_language = 'english';
为:$g_default_language = 'chinese_simplified';
保存,刷新页面即可。

 

7.mantis 管理员账户 更改用户的密码可以采用这个方法

 

mantis管理员重置用户密码时,用户密码更改连接会发往用户的信箱中。但如果此时用户信箱无法使用,则用户将无法登陆mantis,影响工作。mantis没有提供管理员手工设置用户口令的功能,但查阅资料,可以为mantis增加该项功能,使mantisg管理员管理起来更方便。具体步骤如下:

1. 修改文件 manage_user_edit_page.php

1) 找到该行:"<!-- Email -->

2) 粘贴下面代码:

<!-- Password -->
<tr <?php echo helper_alternate_class( 1 ) ?>>
<td class="category" width="30%">
<?php echo "Password (change only)" ?>:
</td>
<td width="70%">
<input type="text" size="16" maxlength="100" name="password" value="" />
</td>
</tr>

2. 修改文件 manage_user_update.php

1) 找到该行: $f_user_id = gpc_get_int( 'user_id' );

2) 在该行下粘贴下面行:

$f_pass = gpc_get_string('password');

3) 找到该行: $result = db_query( $query ); 有的版本是:$result = db_query_bound( $query, $query_params );

4) 在该行上面粘贴下面行:
//Reset the password if specified.
if ($f_pass) user_set_password($f_user_id, $f_pass);

 

以上就是我实战经过,顺利通过测试。

抱歉!评论已关闭.