关闭。这个问题需要更多 focused .它目前不接受答案。
想改进这个问题?更新问题,使其仅关注一个问题 editing this post .
7年前关闭。
Improve this question
最好的写作方法是什么 Hook 对于 颠覆 在 window ?据我所知,只能使用可执行文件。那么最好的选择是什么?
最佳答案
我刚刚在这个问题上拖延了几天。有可用的第三方产品和大量的 PERL 和 Python 脚本,但我想要一些简单的东西和我熟悉的语言,所以最终只是在 C# 控制台应用程序中编写 Hook 。这非常简单:
public void Main(string[] args)
{
string repositories = args[0];
string transaction = args[1];
var processStartInfo = new ProcessStartInfo
{
FileName = "svnlook.exe",
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
Arguments = String.Format("log -t \"{0}\" \"{1}\"", transaction, repositories)
};
var p = Process.Start(processStartInfo);
var s = p.StandardOutput.ReadToEnd();
p.WaitForExit();
if (s == string.Empty)
{
Console.Error.WriteLine("Message must be provided");
Environment.Exit(1);
}
Environment.Exit(0);
}
然后,您可以通过将 pre-commit.cmd 文件添加到 repo 的 hooks 文件夹中,使用以下行在预提交时调用它:
[path]\PreCommit.exe %1 %2
您可能会认为这有点过头了,但最终只需要几分钟的编码。更重要的是,您可以获得 .NET 语言套件的优势,恕我直言,它比其他语言套件更可取。我将显着扩展我的钩子(Hook)并针对它们编写适当的测试 - 使用 DOS 批处理文件很难做到这一点!
顺便说一句,代码已改编自 this post .
关于svn - 在 Windows 中为 subversion 编写钩子(Hook)的最佳策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5134/