代码之家  ›  专栏  ›  技术社区  ›  Mike Q

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

  •  2
  • Mike Q  · 技术社区  · 14 年前

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

    不过,查看svn日志,最好在commit消息中显示摘要,否则它只是一堆数字,您必须一直向JIRA求助,看看发生了什么。

    因此,我认为不必每次都要求人们放入摘要,我可以解析commit消息并在必要时附加摘要。我可以做到,但我不是两件事

    • 如何更改挂钩中事务的提交消息?
    • SVN文档中有关于在预提交挂钩期间更改事务的大警告。这是否适用于仅更改提交消息?
    3 回复  |  直到 14 年前
        1
  •  2
  •   David W.    14 年前

    在提交期间不要更改修订!这包括修改文件、修改属性,甚至提交消息。事实上, svnlook 不会给你做这些事情的能力而且是有理由的。很有可能你会因为试图大嚼评论而导致提交失败。

    如果要执行此操作,请至少使用提交后触发器。这样,您就有了一个修订号,并且可以修改svn:log。

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

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

    哈德逊有一个链接到吉拉的插件。它将:

    • 每当Jira ticket执行构建并在注释中检测到该ticket时,就向其添加注释。这样,你就可以看一张Jira的票,看看这张票涉及的是什么版本。
    • 哈德逊将显示您的提交消息,其中包含与所涉及的Jira票据的链接。如果开发人员想查看罚单的详细信息,可以转到Hudson并单击链接。
    • (与Jira无关)Hudson还允许您使用ViewVC或Sventon作为源代码浏览器。当您在Hudson中查看更改时,它将链接到ViewVC或Sventon并显示文件中的差异。
        2
  •  1
  •   khmarbaise    14 年前

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

        3
  •  1
  •   mdoar    14 年前

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

    ~马特