使用SharpSVN在C#中预提交挂钩

时间:2010-08-19 17:23:40

标签: c# svn tortoisesvn sharpsvn pre-commit-hook

我是SharpSVN的新手(坦率地说 - 对C#也很陌生)。我一直在尝试使用一个简单的预提交钩子来检查注释。 (即在没有评论的情况下提交失败)

有几个帖子(如this one)相关且有帮助,但我有一些基本问题阻碍了我的进一步发展:

1)如何在C#中获取上述链接之类的代码? (即我将使用哪个C#上下文 - 控制台应用程序?csharp类?)

2)在Windows Server环境中,如何调用已编译的C#程序?

我尝试过this answer's方法而没有运气。

提前致谢。

3 个答案:

答案 0 :(得分:4)

如果要创建预提交挂钩,则应将其称为pre-commit.exe。 (Subversion接受带有扩展名.exe,.cmd,.bat和.wsf的钩子。)

钩子通过stdout,stderr和某些情况下stdin进行通信,因此你应该将你的应用程序编译为控制台应用程序。

要使钩子工作,必须将.exe(和所需的DLL)放在存储库的hooks目录中。

有关示例代码,请参阅How to access file information in a pre-commit hook using SharpSVN

答案 1 :(得分:0)

将“hook”编译为控制台应用程序,然后编写一个调用控制台应用程序的批处理文件。批处理文件需要正确命名并放在Subversion存储库的“hooks”文件夹中。

对于您的特定情况,应该在pre-commit.bat(或pre-commit.cmd)之前调用批处理文件。

答案 2 :(得分:0)

我不得不让用户误入错误的分支。所以我写了一个预提交钩子,它会检查注释的关键值。如果注释没有以右键开头,则提交将被中止。

这是项目: http://sourceforge.net/projects/csvnprecommit/

随意使用它作为您自己的钩子的基础或使用按原样。如果您发现错误,请将其提交给项目。