6

我希望自动化一些与 SubVersion 相关的任务,所以我得到了 SharpSvn。不幸的是,我找不到太多的文档。

我希望能够在用户提交新修订后查看更改,以便我可以解析代码以获取特殊评论,然后可以将其上传到我的票证系统中。

4

3 回答 3

3

如果您只想浏览 SharpSvn,您可以使用http://docs.sharpsvn.net/。那里的文档远非完整,因为重点主要是提供功能。欢迎任何有关增强文档(或 SharpSvn 本身)的帮助 ;-)

要为您的问题跟踪器使用日志消息,您可以使用两种方法:

  1. 一次处理一个更改的提交后挂钩
  2. 每隔一段时间调用 'svn log -r <last-retrived>:HEAD' 的预定服务。

SharpSvn 的最后一个每日构建对提交钩子有一些支持,但那部分还不是真正的 api-stable。

您可以使用以下命令创建一个提交后挂钩 (post-commit.exe):

static void Main(string[] args)
{
  SvnHookArguments ha;
  if (!SvnHookArguments.ParseHookArguments(args, SvnHookType.PostCommit, false, out ha))
  {
    Console.Error.WriteLine("Invalid arguments");
    Environment.Exit(1);
  }

  using (SvnLookClient cl = new SvnLookClient())
  {
    SvnChangeInfoEventArgs ci;
    cl.GetChangeInfo(ha.LookOrigin, out ci);

    // ci contains information on the commit e.g.
    Console.WriteLine(ci.LogMessage); // Has log message

    foreach(SvnChangeItem i in ci.ChangedPaths)
    {
       //
    }
  }
}

(对于一个完整的解决方案,您还必须挂钩 post-revprop-change,因为您的用户可能会在第一次提交后更改日志消息)

于 2008-11-16T13:15:05.693 回答
2

这有什么用吗?

http://blogs.open.collab.net/svn/2008/04/sharpsvn-brings.html

于 2008-11-16T07:08:09.100 回答
0

我想知道颠覆挂钩(在 svn 服务器上)是否可能不是另一种方法?我没有尝试过,但CaptainHook似乎提供了 svn->.NET hook 集成。

于 2008-11-16T09:20:57.397 回答