是否可以在SVN预提交挂钩中更新提交消息

时间:2010-11-17 17:36:46

标签: svn hook jira

我在我的SVN repos中添加了一些预提交挂钩,检查人们是否针对每次提交放置了一个JIRA项。这很好。

然而,查看svn日志会很好地在提交消息中显示摘要,否则它只是一堆数字,你必须一直回访JIRA以查看发生了什么。

因此,我认为,每次我都可以解析提交消息并在必要时添加摘要,而不是要求人们提交摘要。我能做到这一点,但我不是两件事

  • 如何在挂钩中更改事务的提交消息?
  • SVN文档中有关于在预提交挂钩期间更改事务的重要警告。这是否仅适用于更改提交消息?

3 个答案:

答案 0 :(得分:2)

请勿在提交期间更改修订版本!这包括修改文件,修改属性,甚至提交消息。事实上,svnlook并没有让你有能力做这些事情并且有充分的理由。很可能你会因为你试图破坏评论而导致提交失败。

如果你想这样做,至少要使用一个提交后触发器。这样,你有一个修订号,你可以修改svn:log。

更好的方法是让crontab运行一个作业来完成Subversion日志并修改提交消息。这样,在等待触发器修改提交消息时,您不会占用提交。

但是,最好的解决方案是使用Hudson作为连续构建服务器。 Hudson将自动构建,运行测试,甚至通过电子邮件向开发人员发送构建问题。

Hudson有一个链接到Jira的插件。它会:

  • 在Jira故障单执行构建时添加注释,并在注释中检测到该故障单。这样,您可以查看Jira票证并查看该票证所涉及的构建。
  • Hudson将显示您的提交消息,其中包含指向所涉及的Jira票证的链接。如果开发人员想要查看故障单的详细信息,他们可以访问Hudson并单击链接。
  • (与Jira无关)Hudson还允许您使用ViewVC或Sventon作为源代码浏览器。当您查看Hudson中的更改时,它将链接到ViewVC或Sventon,并显示文件中的差异。

答案 1 :(得分:1)

这适用于提交消息以及内容,因为您将失去与客户端的同步。对于似乎不是什么大不了的提交消息,但我建议如果日志消息不包含所需信息,则拒绝提交。 更新:您可以做的是稍后更改日志消息(通过基于时间扫描svn repo的作业),因为它是修订属性。但请记住,日志消息的更改不会记录在任何地方......

答案 2 :(得分:1)

几年前我用CVS和JIRA,SVN和JIRA做了这个。不知何故,将bug信息添加到提交消息似乎是错误的,因此我修改了显示提交消息的其他工具,以便在查看时添加JIRA信息。这也避免了由于等待JIRA的事务导致的缓慢提交。

〜马特