【问题标题】:SVN pre-commit-hook, is there a way to set the logmessage in the client window?SVN pre-commit-hook,有没有办法在客户端窗口中设置日志消息?
【发布时间】:2012-02-01 12:52:39
【问题描述】:

感谢您阅读我的问题:)

我的目标是在向 SVN 服务器触发提交之前修改此消息:

我已经有一个 start 和 pre-commit 钩子 (C#),当我尝试提交某些东西时,它们都会被调用。我还有一个可用的 SharpSvn 库。但不幸的是,我没有前进,我不知道如何填写此消息。

那么有可能吗?如果可以,怎么做?我很高兴每一个小提示:)

【问题讨论】:

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


    【解决方案1】:

    除非失败,否则提交挂钩不会与客户端对话。然后,他们将发送到标准错误的任何内容发送给用户。挂钩脚本不能更改提交的任何方面。 (这并不完全正确:提交后挂钩可以修改提交消息、作者和提交时间,但这通常是一个非常糟糕的主意。)

    您可以做的是确保您的提交消息格式正确,如果不正确,则提交失败。由用户以正确的格式重新提交他们的提交。

    我不建议使用内置的 TortoiseSVN 客户端挂钩。这些是在逐台机器的基础上完成的,因此用户可以选择退出它们,如果用户使用不同的客户端(例如 VisualStudio AnkhSVN 插件),它们将不起作用。

    你没有提到你想要做什么或为什么。

    非常欢迎您使用用 Perl 编写的my hookkitchen sink 挂钩执行多项任务,其中一项确保提交消息的格式正确。例如,您可以要求它包含缺陷跟踪 ID,或者至少......比如说...... 10 个字符长。

    但是,如果用户的提交消息不符合条件,则挂钩将导致提交失败,用户将不得不重试。诀窍是放置一个好的错误消息,以便用户知道他们做错了什么。相信我,经过一两次尝试后,用户就会了解好的提交消息需要具备的条件。

    但是,您可能想尝试稍微不同的路线:使用持续集成系统,例如 Jenkins

    我注意到,一旦我在 Jenkins 上启动并运行了一个项目,提交消息就会自动得到改善。每个 Subversion 提交都会变成一个构建。但是,Jenkins 还会向您展示之前和当前构建以及提交消息之间的所有更改。

    这主要与可见性有关。在 Jenkins 之前,提交消息是相当隐藏的。只有在您执行svn log 时才能看到它们,而且很少有人会定期执行此操作。但是,在 Jenkins 中,您可以在每次构建和提交时看到它。只需点击几下网页,您就可以查看历史记录、更改者以及更改内容。

    这可能是处理你想要的最好的方式。

    【讨论】:

      【解决方案2】:

      好的,我找到了答案:)

      我通过钩子脚本尝试它是错误的。更好的解决方案是构建自定义问题跟踪器插件:

      http://tortoisesvn.googlecode.com/svn/trunk/contrib/issue-tracker-plugins/issue-tracker-plugins.txt

      这样我可以从 DB 中读取我的问题,让开发人员选择他需要的问题并将它们放入日志消息窗口。

      【讨论】:

        猜你喜欢
        • 2012-02-04
        • 1970-01-01
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多