Subversion 与 Mantis 整合作法

转载 2007年09月27日 12:56:00

转自http://www.ichiayi.com/wikipage/tech/svnmantis

 

 

Mantis 有张贴一个新的 Issue , 与这个 Issue 相关的 Subversion 更动纪录可以自动回写至 Mantis 这个 Issue 内的 Bug 笔记内.

  • 建立 svnbot 这个特殊的 userid
  • 存取权限设定为开发者 (如果有多个项目, 每个项目都要授与 svnbot 这个权限)

vi /var/www/html/mantis/config_inc.php

:

:

        #Source Control

        $g_source_control_account = 'svnbot';

        $g_source_control_regexp = '//b(?:bug|issue|mantis)/s*[#]{0,1}(/d+)/b/i';

        $g_source_control_set_status_to = RESOLVED;

        $g_source_control_set_resolution_to = FIXED;

        $g_source_control_fixed_regexp = '//bfix(?:ed|es)/s+(?:bug|issue|mantis)?/s*[#]{0,1}(/d+)/b/i';

:

  • 设定 svnbot 为这个整合的 mantis 内特殊 user
  • 只要 SubVersion 内的纪录出现 bug issue mantis #编号 表示整合 Mantis 内的 Issue # Bug 笔记
  • 只要 SubVersion 内的纪录出现 fixed fixes + bug issue mantis #编号 表示整合 Mantis 内的 Issue # Bug 笔记外, 更会将 issue 状态改成已修正解决

直接执行以下的命令, 可以在 mantis 内的 Issue#2 新增 Bug 笔记

php /var/www/html/mantis/core/checkin.php <<< "Test issue #2 by svnbot."

直接执行以下的命令, 可以在 mantis 内的 Issue#2 新增 Bug 笔记以及将问题状态更改为以解决

php /var/www/html/mantis/core/checkin.php <<< "Test fixed issue #2 by svnbot."

vi /var/www/svn2mantis.pl

#!/usr/bin/perl

#

# 上午 11:15 2007年6月22

# Jonathan Tsai

# Ver 1.10

#

# 自动将 svn 讯息写入 mantis 纪录内

#

# 参考 http://www.ichiayi.com/trywiki/tech/svnmantis 的说明方式

# script 需配合:

#  1. /var/www/svn/xxxrepos/hooks/post-commit 一起使用

#  2.apache user 可使用 ssh 免密码登入 Mantis 主机 <- SVN 主机与 Mantis 主机不同时需要

#

# 1.00 (2007/3/26) 第一版启用

# 1.01 (2007/3/26) 增加 commit 后自动整合的说明

# 1.10 (2007/6/22) 增加 远程登入 Mantis 主机功能设定

#

 

$prgname = substr($0, rindex($0,"/")+1);

$ver = "1.10 (2007/6/22)";

# $sshcmd 设为空字符串表示 SVN Mantis 安装在相同主机

$sshcmd = "";

# 否则应该输入由 svn 主机免密码登入 Mantis 主机的命令列

#$sshcmd = "/usr/bin/ssh jonathan@10.10.10.96";

 

# 读取参数数据

$REPOS=$ARGV[0];

$REV=$ARGV[1];

 

# 定义外部指令

$svnlook = "export LANG=zh_TW.UTF-8;/usr/bin/svnlook";

$phpcmd = "/usr/bin/php";

$checkincmd = "/var/www/html/mantis/core/checkin.php";

 

# 取得 svn 相关信息

$auth=`$svnlook author -r $REV $REPOS`;

$dt=`$svnlook date -r $REV $REPOS`;

$changed=`$svnlook changed -r $REV $REPOS`;

$log=`$svnlook log -r $REV $REPOS`;

$msg="Changeset [".$REV."] by $auth/n$dt/n$log/n$changed";

 

# 传送至 mantis

if (length($sshcmd)>0) {

        `$sshcmd $phpcmd -q $checkincmd <<< "$msg"`;

}

else {

        `$phpcmd -q $checkincmd <<< "$msg"`;

}

  • 假设 servercfg svn 存放在 /var/www/svn/servercfg
  • 假设 servercfg Reversion 644 讯息内容有出现 mantis #2 表示整合至 Mantis Issue #2

chmod a+x /var/www/svn2mantis.pl

/var/www/svn2mantis.pl /var/www/svn/servercfg 644

  • 这样就可以看到 Mantis Issue #2 内新增一个 Bug 笔记, 内容如下:

Changeset [644] by jonathan

 

2007-03-26 11:29:55 +0800 (, 26 3 2007)

 

svnlook 命令前加入 LANG=zh_TW.UTF-8 来测试整合 mantis 中文讯息问题.

 

mantis#2

 

U PD-920/var/www/svn2mantis.pl

如果有多个 svn repos 就在每个 repos 内依照这步骤一一执行, 以下还是以 servercfg svn repos 为例

cd /var/www/svn/servercfg

cd hooks

vi post-commit

#!/bin/sh

 

REPOS="$1"

REV="$2"

 

/var/www/svn2mantis.pl "$REPOS" "$REV"

chown apache:apache post-commit

chmod a+x post-commit

这样一但 commit , 会马上执行这个 post-commit shell script, 来执行 svn2mantis.pl SVN 内的纪录内容整合到 Mantis Issue Bug 笔记内.

  • SVN Server : 10.10.10.91
  • Mantis Server : 10.10.10.96
  • 假设 svn server 是与 httpd 整合, 透过 apache 执行
  • 先设定 SVN 主机内的 jonathan 账号可以不用密码以相同账号登入 Mantis 主机
  • 再设定 SVN 主机内的 apache 账号可以不用密码以 jonathan 账号登入 Mantis 主机

  • /home/jonathan/.ssh 内产生凭证与公钥
  • 将公钥复制到 Mantis 主机内改命名为 10.10.10.91_authorized_keys2

su - jonathan

ssh 10.10.10.96 <- 输入密码确认可以登入

exit <- 回到 svn 主机

cd .ssh

ssh-keygen -d <- 产生 id_dsa.pub (询问时均 Enter 跳下不输入任何字符)

scp id_dsa.pub 10.10.10.96:/home/jonathan/.ssh/10.10.10.91_authorized_keys2

  • SVN 主机公钥加入认证公钥清单文件内
  • 将认证公钥清单文件权限设为只有自己可以读写

su - jonathan

cd .ssh

cat 10.10.10.91_authorized_keys2 >> authorized_keys2

chmod 600 authorized_keys2

  • 先使用 jonathan 账号登入 SVN 主机
  • 执行 ssh 10.10.10.96 就可以发现不需要密码就可登入 Mantis 主机

[jonathan@eddev ~]$ ssh jonathan@10.10.10.96

Last login: Fri Jun 22 10:14:40 2007 from 10.10.10.91

[jonathan@tryboxap04 ~]$

  • 登入 SVN 主机, 切换成 root
  • 将上面设定的 /home/jonathan/.ssh 目录复制到 /var/www 内就可以

su -

cd /var/www

cp -a ~jonathan/.ssh .

chown -R apache:apache .ssh

vi /var/www/svn2mantis.pl

#!/usr/bin/perl

#

# 上午 11:15 2007年6月22

# Jonathan Tsai

# Ver 1.10

#

# 自动将 svn 讯息写入 mantis 纪录内

#

# 参考 http://www.ichiayi.com/trywiki/tech/svnmantis 的说明方式

# script 需配合:

#  1. /var/www/svn/xxxrepos/hooks/post-commit 一起使用

#  2.apache user 可使用 ssh 免密码登入 Mantis 主机 <- SVN 主机与 Mantis 主机不同时需要

#

# 1.00 (2007/3/26) 第一版启用

# 1.01 (2007/3/26) 增加 commit 后自动整合的说明

# 1.10 (2007/6/22) 增加 远程登入 Mantis 主机功能设定

#

 

$prgname = substr($0, rindex($0,"/")+1);

$ver = "1.10 (2007/6/22)";

# $sshcmd 设为空字符串表示 SVN Mantis 安装在相同主机

#$sshcmd = "";

# 否则应该输入由 svn 主机免密码登入 Mantis 主机的命令列

$sshcmd = "/usr/bin/ssh jonathan@10.10.10.96";

 

# 读取参数数据

$REPOS=$ARGV[0];

$REV=$ARGV[1];

 

# 定义外部指令

$svnlook = "export LANG=zh_TW.UTF-8;/usr/bin/svnlook";

$phpcmd = "/usr/bin/php";

$checkincmd = "/var/www/html/mantis/core/checkin.php";

 

# 取得 svn 相关信息

$auth=`$svnlook author -r $REV $REPOS`;

$dt=`$svnlook date -r $REV $REPOS`;

$changed=`$svnlook changed -r $REV $REPOS`;

$log=`$svnlook log -r $REV $REPOS`;

$msg="Changeset [".$REV."] by $auth/n$dt/n$log/n$changed";

 

# 传送至 mantis

if (length($sshcmd)>0) {

        `$sshcmd $phpcmd -q $checkincmd <<< "$msg"`;

}

else {

        `$phpcmd -q $checkincmd <<< "$msg"`;

}

  • 假设 moeaprj svn 存放在 /var/www/svn/moeaprj
  • 假设 moeaprj Reversion 1700 讯息内容有出现 mantis #516 表示整合至 Mantis Issue #516

chmod a+x /var/www/svn2mantis.pl

/var/www/svn2mantis.pl /var/www/svn/moeaprj 1700

  • 这样就可以看到 Mantis Issue #516 内新增一个 Bug 笔记, 内容如下:

Changeset [1700] by chou

 

2007-06-20 12:09:04 +0800 (, 20 6 2007)

 

更改发文查询的本文含附件打印 mantis#516

 

U EDOC2/Source/docsrv_html/inc/templates/edrecvquery_2.inc.htm

如果有多个 svn repos 就在每个 repos 内依照这步骤一一执行, 以下还是以 moeaprj svn repos 为例

cd /var/www/svn/moeaprj

cd hooks

vi post-commit

#!/bin/sh

 

REPOS="$1"

REV="$2"

 

/var/www/svn2mantis.pl "$REPOS" "$REV"

chown apache:apache post-commit

chmod a+x post-commit

这样一但 commit , 会马上执行这个 post-commit shell script, 来执行 svn2mantis.pl SVN 内的纪录内容整合到 Mantis Issue Bug 笔记内.

 

 

 

相关文章推荐

Mantis: SVN integration in 1.2.x

http://blog.crazytje.be/mantis-svn-integration-in-the-1-2-x/ Recently I upgrade my mantis...

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

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

整合mantis和svn

mantis通过core/checkin.php 即可在svn提交的同时把问题标记为解决!1. svn -> pre-commit.bat Bat代码 @echo off  @echo offBat代...

显示卡影片播放硬件加速,作法原理完全解说

原文地址:http://www.5i01.cn/newsdetail.php?id=4481 作者:G.F. 我还记得我装第一台电脑时,为了看VCD的....好看影片(羞),还特别去买一张...

SQLコーディング作法

  • 2012-11-07 09:55
  • 244KB
  • 下载

Bug 跟踪管理系统 Mantis 在 IIS5 下安装指南

转自:http://shaoyongxin.cto.csdn.net/Article.aspx?Name=shaoyongxin&pointid=5043 需要作的准备工作:  1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)