【问题标题】:Pre-commit hooks in C# with SharpSVN使用 SharpSVN 在 C# 中预提交钩子
【发布时间】:2011-04-01 06:23:11
【问题描述】:

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

有几篇相关且有用的帖子(如 this one),但我有一些基本问题使我无法继续深入:

1) 如何在 C# 中运行如上面链接的代码? (即我将使用哪个 C# 上下文——控制台应用程序?csharp 类?)

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

我尝试了this answer's 方法,但没有成功。

提前致谢。

【问题讨论】:

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


    【解决方案1】:

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

    对于您的具体情况,批处理文件应称为 pre-commit.bat(或 pre-commit.cmd)。

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        我必须防止用户错误地提交到错误的分支。所以我写了一个预提交钩子来检查评论中的关键值。如果注释不是以正确的键开头,则提交被中止。

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-15
          • 2017-02-08
          • 2016-09-02
          • 2012-12-22
          • 1970-01-01
          相关资源
          最近更新 更多