我已经使用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文件中 - 只有一个类)被修改。
答案 0 :(得分:0)
您真的需要一个钩子脚本吗?在我看来,VisualSVN Server的Web界面具有您所需的功能。
修订日志查看器显示更改的行号,您也可以共享指向特定行的链接。这是example on the demo server:
您还可以使用高级的责备查看器。这是example on the demo server: