我们有一个用ASP,net 3.5构建的自定义项目管理工具,我们使用VisualSVN进行版本管理。但是,我们正在寻找一种方法,通过将VisualSVN与我们的项目管理工具集成,通过项目管理工具报告版本更改,即与Trac [基于python的SCM工具]提供的非常类似。
基本上寻找一个简单的VisualSVN客户端API,以便能够检测到&根据提供的修订集报告文件更改。
答案 0 :(得分:3)
还有SharpSvn封装整个Subversion 1.5客户端api。它是根据Apache 2.0许可证授权的,它来自CollabNet。
答案 1 :(得分:0)
检查Svn.NET我认为现在是Subversion客户端系统库.NET绑定的最佳解决方案。
答案 2 :(得分:0)
如果您对某些脚本感到满意,可以使用svnlook,它提供有关更改和存储库修改的报告的工具。
我在post-commit钩子中使用它将所有文件的更改发送到我的bugtracker,因此它可以显示在给定修订号的情况下更改了哪些文件。我在日志中添加了一个特定的文本,然后选择该文本以了解将数据与哪个错误相关联。
编辑,根据请求,从post-commit钩子调用这个perl脚本:
$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 . "---\nSVN Revision: " . $ARGV[1];
$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;
这写入postcommit_mantis.txt文件,该文件通过curl发送给Mantis:
d:\tools\curl -s -d user=svn -d @c:\temp\postcommit_mantis.txt http://<server>/mantis/core/checkincurl.php