你有整合Mantis和Subversion吗?

时间:2008-09-24 00:05:51

标签: svn mantis scmbug

我主要进行Windows开发。我们使用MantisSubversion进行开发,但它们没有集成在一起,事实上它们位于不同的服务器上。

我做了一些关于将两者整合在一起的谷歌搜索,并遇到了this post。它看起来很有趣。

我想知道是否有人这样做或已经完成了这个以及你的经历是什么。如果你有不同的解决方案,我也有兴趣了解它!

谢谢!

6 个答案:

答案 0 :(得分:5)

我使用Mantis和SVN。就像那个链接所说的那样,虽然我把regexp放在post-commit中,所以如果提交消息不相关,它不会尝试更新bug,这使得非bug更新提交的响应速度稍快。

我的Mantis安装也在不同的服务器上。我在Mantis 1.1.6中使用curlcall the php方法。

将它放在post-commit.cmd钩子中(你需要下载strawberry perl并从中获取perl.exe和perl510.dll,你不需要其余的)

c:\tools\perl c:\tools\mantis_urlencode.pl %1 %2  > c:\temp\postcommit_mantis.txt
if %ERRORLEVEL% NEQ 0 exit /b 0

c:\tools\curl -s -d user=svn -d @c:\temp\postcommit_mantis.txt http://swi-sgi-l-web1.ingrnet.com/mantis/core/checkincurl.php

并将其放入mantis_urlencode.pl

$url = `svnlook log -r $ARGV[1] $ARGV[0]`;

# check the string contains the matching regexp, 
# quit if it doesn't so we don't waste time contacting the webserver
# this is the g_source_control_regexp value in mantis.

exit 1 if not $url =~ /\b(?:bug|issue|mantis)\s*[#]{0,1}(\d+)\b/i;

$url = $url . "\n" . `svnlook dirs-changed -r $ARGV[1] $ARGV[0]`;

#urlencode the string
$url =~ s/([^\w\-\.\@])/$1 eq " "?"+":  sprintf("%%%2.2x",ord($1))/eg;

print "log=$url";

exit 0;

如果你想从VSS迁移,那么有很多脚本,包括我在codeplex上写的脚本。

这一切都运作良好,我们一直使用它,并且它足够快,不会注意到那里。只需键入“Fixed Mantis#1234”即可解决该问题,并为其添加一个bugnote。该脚本还添加了修改为bugnote的目录(我尝试显示已更改的文件,但太多有助于理解)

答案 1 :(得分:3)

我们已经使用scmbug将SVN链接到Bugzilla很长一段时间了。工作得很好,直到我们最近升级到Bugzilla 3.2,这打破了整合。 scmbug团队需要一段时间才能赶上SCM工具的新版本,这是可以理解的。

答案 2 :(得分:3)

这是我们使用的Subversion post-commit script。它使用PHP运行Mantis checkin PHP脚本,如原始帖子中的this link所示。

答案 3 :(得分:1)

我遇到了scmbug。看起来它会把像Mantis这样的东西连接到像Subversion这样的东西。

答案 4 :(得分:0)

我们按照您链接中的步骤进行操作 - 唯一的区别是在Windows上您有post-commit.bat。如果您向下滚动某人发布样本。我们对其进行了修改,以便记录更改的文件以及更改后的文件 - 这对批处理文件来说非常容易。我们尝试在某一点上包含差异 - 但很明显,由于某些签到的大小,这样做很难。

它工作得非常好,我真的很开心 - 现在我必须将所有Sourcesafe的东西移到...

答案 5 :(得分:0)

我个人使用VisualSVN Server和公共Mantis bug跟踪器在我的本地开发环境中使用私有SVN存储库。我不得不稍微更改checkin.php文件以处理来自Web服务器的调用(借助此网页:http://www.mantisbt.org/bugs/view.php?id=8847

我已经制作了一个简短的C#控制台应用程序来处理这个而不是批处理文件,因此它更易于配置并支持远程或本地checkin.php文件。

如果您感兴趣,我已在我的博客上发布了一篇关于此内容的文章及源代码:http://mp4m.org/blog/svn-and-mantis-bug-tracker-integration/

希望有所帮助!