【问题标题】:Can I/should I update the commit message in an SVN pre-commit hook我可以/应该更新 SVN 预提交挂钩中的提交消息吗
【发布时间】:2010-11-17 17:36:46
【问题描述】:

我在我的 SVN 存储库中添加了一些预提交钩子,用于检查人们是否针对每次提交添加了 JIRA 项目。这很好用。

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

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

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

【问题讨论】:

  • 我有相同的要求——SVN 中的每个提交,都有 Jira 问题 ID。你能分享你的预提交钩子

标签: svn hook jira


【解决方案1】:

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

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

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

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

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

  • 每当 Jira 票证进行构建并在评论中检测到该票证时,向它添加评论。这样,您就可以查看 Jira 票证并了解该票证涉及的构建。
  • Hudson 将显示您的提交消息以及所涉及的 Jira 票证的链接。如果开发者想查看工单的详细信息,他们可以前往 Hudson 并点击链接。
  • (与 Jira 无关)Hudson 还允许您使用 ViewVC 或 Sventon 作为源代码浏览器。当您查看 Hudson 中的更改时,它会链接到 ViewVC 或 Sventon,并向您显示文件中的差异。

【讨论】:

  • 关于提交后触发器的好建议,我就是这样实现的。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    ~马特

    【讨论】:

    • 有趣的是,我不想更改所有客户端工具,因为其中可能有几个。我宁愿解决一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2012-10-18
    • 2010-12-23
    • 2019-03-29
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多