我想写使用SharpSVN一个post-commit钩子,但无法弄清楚如何使用SharpSVN给出的版本号和路径回购获得变更信息。任何想法赞赏。

有帮助吗?

解决方案

在钩客户,你最有可能要使用直接访问资源库中的SvnLookClient。在此示例中(从这里另一个问题复制)我也使用SvnHookArguments类用于解析钩的参数。

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)
    {
       //
    }
  }
}

其他提示

您想要的 GetLog 方法。

SvnRevision rev(123);
client.GetLog(uri, new SvnLogArgs(rev), out logitems); // uri is your url to the repo.

这可能不是确切的(无智能感知!我怎么有望代码C#不说:(),但它的大概你想要的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top