Svn 你整合了螳螂和颠覆吗?

Svn 你整合了螳螂和颠覆吗?,svn,mantis,scmbug,Svn,Mantis,Scmbug,我主要从事Windows开发。我们在开发中使用和,但它们没有集成在一起,事实上它们位于不同的服务器上 我在谷歌上搜索了一下,想把两者结合起来,结果发现。看起来很有趣 我想知道是否有人在做这件事,或者曾经做过这件事,以及你的经历。如果你有不同的解决方案,我也很想知道 谢谢 我遇到了。看起来它可以将螳螂之类的东西与Subversion之类的东西连接起来。我们已经使用scmbug将SVN链接到Bugzilla有一段时间了。在我们最近升级到Bugzilla 3.2之前工作得非常好,这打破了集成。scmb

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

我在谷歌上搜索了一下,想把两者结合起来,结果发现。看起来很有趣

我想知道是否有人在做这件事,或者曾经做过这件事,以及你的经历。如果你有不同的解决方案,我也很想知道


谢谢

我遇到了。看起来它可以将螳螂之类的东西与Subversion之类的东西连接起来。

我们已经使用scmbug将SVN链接到Bugzilla有一段时间了。在我们最近升级到Bugzilla 3.2之前工作得非常好,这打破了集成。scmbug团队需要一段时间才能赶上SCM工具新版本的发布,这是可以理解的。

我们遵循了链接中的步骤-唯一的区别是,在Windows上,您使用的是post-commit.bat。如果你向下滚动有人发布了一个样本。我们对其进行了修改,使其记录更改的文件以及更改者-这是对批处理文件的一个相当简单的黑客攻击。我们曾尝试在某一点上包含差异,但很快就发现,由于某些签入的大小,这样做是一个坏主意


它工作得非常好,我也非常高兴——现在我必须把我们所有的Sourcesafe东西移到另一个地方……

我使用Mantis和SVN。就像那个链接所说的,虽然我将regexp放在提交后,所以如果提交消息不相关,它不会尝试更新bug,这使得非bug更新提交的响应稍微快一点

我的Mantis安装也在不同的服务器上。我使用Mantis1.1.6中的方法

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

然后把这个放在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迁移,有很多脚本,包括我写的一个


这一切都很好,我们一直在使用它,而且它足够快,不会注意到它的存在。只需键入“Fixed Mantis#1234”,它就解决了这个bug并添加了一个bug注释。该脚本还将修改过的目录添加到bugnote中(我尝试显示更改过的文件,但太多了,不便于理解)

下面是我们使用的方法。它使用PHP运行螳螂签入PHP脚本,如原始帖子中所建议的那样。

我个人使用VisualSVN服务器和公共螳螂bug跟踪器在本地开发环境中使用私有SVN存储库。我不得不稍微更改checkin.php文件以处理来自web服务器的调用(借助于此网页:)

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

如果您感兴趣,我已经在我的博客上发布了一篇关于此的文章,其中包含源代码:


希望有帮助

我想知道当您无法直接访问svn存储库时这是否有效。。。仍然在寻找类似的问题/答案。是的,它对我们非常有用(这就是我写这篇文章的原因)。该公司使用该解决方案已有几年(据我所知,可能仍在使用)。对我来说,关键是学习subversion挂钩,它可以用任何语言实现。
$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;