感谢您阅读我的问题:)
我的目标是在向 SVN 服务器触发提交之前修改此消息:
我已经有一个启动和预提交钩子(C#),当我尝试提交某些东西时它们都会被调用。我还有一个可用的 SharpSvn 库。但不幸的是,我没有前进,我不知道如何填写此消息。
那么有可能吗?如果可以,怎么做?我很高兴每一个小提示:)
感谢您阅读我的问题:)
我的目标是在向 SVN 服务器触发提交之前修改此消息:
我已经有一个启动和预提交钩子(C#),当我尝试提交某些东西时它们都会被调用。我还有一个可用的 SharpSvn 库。但不幸的是,我没有前进,我不知道如何填写此消息。
那么有可能吗?如果可以,怎么做?我很高兴每一个小提示:)
除非失败,否则提交挂钩不会与客户端对话。然后,他们将发送到标准错误的任何内容发送给用户。挂钩脚本不能更改提交的任何方面。(这并不完全正确:提交后挂钩可以修改提交消息、作者和提交时间,但这通常是一个非常糟糕的主意。)
您可以做的是确保您的提交消息格式正确,如果不是,则提交失败。由用户以正确的格式重新提交他们的提交。
我不推荐使用内置的 TortoiseSVN 客户端钩子。这些是在逐台机器的基础上完成的,因此用户可以选择退出它们,如果用户使用不同的客户端(例如 VisualStudio AnkhSVN 插件),它们将不起作用。
你没有提到你想要做什么或为什么。
非常欢迎您使用我用 Perl 编写的钩子。厨房水槽挂钩执行多项任务,其中一项确保提交消息的格式正确。例如,您可以要求它包含缺陷跟踪 ID,或者至少......比如说...... 10 个字符长。
但是,如果用户的提交消息不符合条件,则挂钩将导致提交失败,用户将不得不重试。诀窍是放置一个好的错误消息,以便用户知道他们做错了什么。相信我,经过一两次尝试,用户就会掌握好的提交信息需要具备的条件。
但是,您可能想尝试一条稍微不同的路线:使用持续集成系统,例如Jenkins。
我注意到的是,一旦我在 Jenkins 上启动并运行了一个项目,提交消息就会自动改进。每个 Subversion 提交都会变成一个构建。但是,Jenkins 还向您展示了先前和当前构建以及提交消息之间的所有更改。
这主要与可见性有关。在 Jenkins 之前,提交消息是相当隐藏的。只有当你这样做时,你才会看到它们,svn log
而且很少有人定期这样做。但是,在 Jenkins 中,您可以在每次构建和提交时看到它。您可以通过在网页上单击几下查看历史记录、更改者以及更改内容。
这可能是处理你想要的最好的方法。
好的,我找到了答案:)
我通过钩子脚本尝试它是错误的。更好的解决方案是构建自定义问题跟踪器插件:
http://tortoisesvn.googlecode.com/svn/trunk/contrib/issue-tracker-plugins/issue-tracker-plugins.txt
有了这个,我可以从数据库中读取我的问题,让开发人员选择他需要的问题并将它们放入日志消息窗口。