如何查看提交修订后所做的更改并将其解析以进行注释?

6 c# svn sharpsvn

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

我希望能够在用户提交新版本后查看更改,以便我可以解析代码以获取特殊注释,然后将其上载到我的票证系统中.

Ber*_*ben 3

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

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

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

SharpSvn 的最新每日构建对提交挂钩有一些支持,但这部分还不是真正的 api 稳定。

您可以使用以下命令创建提交后挂钩(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)
    {
       //
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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