我是SharpSVN的新手(坦率地说 - 对C#也很陌生)。我一直在尝试使用一个简单的预提交钩子来检查注释。 (即在没有评论的情况下提交失败)
有几个帖子(如this one)相关且有帮助,但我有一些基本问题阻碍了我的进一步发展:
1)如何在C#中获取上述链接之类的代码? (即我将使用哪个C#上下文 - 控制台应用程序?csharp类?)
2)在Windows Server环境中,如何调用已编译的C#程序?
我尝试过this answer's方法而没有运气。
提前致谢。
答案 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/
随意使用它作为您自己的钩子的基础或使用按原样。如果您发现错误,请将其提交给项目。