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

我是否可以/应该在SVN预提交挂钩中更新提交消息,svn,hook,jira,Svn,Hook,Jira,我在我的SVN repo中添加了一些预提交挂钩,用于检查人们是否在每次提交时都放置JIRA项目。这个很好用 然而,查看svn日志时,最好在提交消息中显示摘要,否则它只是一堆数字,您必须始终返回JIRA以查看发生了什么 因此,我认为,与其要求人们每次都把摘要放进去,我还可以解析提交消息,并根据需要添加摘要。我可以做到这一点,但我不在乎两件事 如何在钩子中更改事务的提交消息 SVN文档中有关于在预提交钩子期间更改事务的严重警告。这是否仅适用于更改提交消息 这适用于提交消息以及内容,因为您将失去与客

我在我的SVN repo中添加了一些预提交挂钩,用于检查人们是否在每次提交时都放置JIRA项目。这个很好用

然而,查看svn日志时,最好在提交消息中显示摘要,否则它只是一堆数字,您必须始终返回JIRA以查看发生了什么

因此,我认为,与其要求人们每次都把摘要放进去,我还可以解析提交消息,并根据需要添加摘要。我可以做到这一点,但我不在乎两件事

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

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

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


      ~Matt

      提交过程中请勿更改修订!这包括修改文件、修改属性甚至提交消息。事实上,
      svnlook
      并没有给你足够的理由去做这些事情。你很有可能因为试图咀嚼评论而导致提交失败

      如果您想这样做,至少使用post-commit触发器。这样,您就有了修订号,可以修改svn:log

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

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

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

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

      有趣的一点是,我不想改变所有的客户端工具,因为它们可能有几个。我更愿意解决这个问题一次。关于提交后触发器的好建议,这是我实现它的方式。我有相同的要求-SVN中的每个提交都有Jira问题id。你能分享你的提交前钩子吗