如何获取在svnlook中添加,删除或修改内容的行号? (钩住)

时间:2016-03-25 11:12:17

标签: c#-4.0 visualsvn-server svn-hooks pre-commit svnlook

我已经使用c#为windows创建了visualSVN的预提交挂钩和提交后挂钩,但在预提交挂钩中我还需要获取内容更改(添加,删除或修改)的每个更新文件的行号)。 例如
output.cs的内容(在最新修订版中):

private static string GetSvnLookOutput(string repos, string txn, string subcommand)
{
  var processStartInfo = new ProcessStartInfo
  {
    FileName = "svnlook.exe",
    UseShellExecute = false,
    CreateNoWindow = true,
    RedirectStandardOutput = true,
    RedirectStandardError = true,
    Arguments = String.Format("{0} -t \"{1}\" \"{2}\"", subcommand, txn, repos)
  };

  var process = Process.Start(processStartInfo);
  var output = process.StandardOutput.ReadToEnd();
  process.WaitForExit();
  return output;
}

output.cs的内容(在最新修订版中):

private static string GetSvnLookOutput(string repos, string txn, string subcommand)
{
  var processStartInfo = new ProcessStartInfo
  {
    FileName = "svnlook.exe",
    UseShellExecute = false,
    CreateNoWindow = true,
    RedirectStandardOutput = false, // modified the value
    RedirectStandardError = false,// modified the value
    Arguments = String.Format("{0} -t \"{1}\" \"{2}\"", subcommand, txn, repos)
  };

  var process = Process.Start(processStartInfo);// deleted one line after this line
  process.WaitForExit();
  return output;
}

我需要在预提交挂钩中知道行号(8,9,14)作为输出。 对于通过c#预先提交挂钩,我遵循https://gist.github.com/karpathy/d4dee566867f8291f086

注意:我的最终要求是找出哪个函数(在.cs文件中 - 只有一个类)被修改。

1 个答案:

答案 0 :(得分:0)

您真的需要一个钩子脚本吗?在我看来,VisualSVN Server的Web界面具有您所需的功能。

修订日志查看器显示更改的行号,您也可以共享指向特定行的链接。这是example on the demo server

enter image description here

您还可以使用高级的责备查看器。这是example on the demo server

enter image description here