hg推送的频率较低/详细通知

时间:2012-01-05 17:22:04

标签: version-control mercurial mercurial-hook

我的项目使用hgext.notify。目前,incoming.notify =每个变更集上的单独邮件。考虑改变组通知,但即使包含有关每个变更集的信息,也只需要一个大的电子邮件。

问题在于:

我的工作作风是“早点检查”。我做了许多小签到,通常在树枝上。任务分支。最终整合。

我的队友不喜欢在我的任务分支上查看所有签到的消息。

我们正在考虑使用像collapse或histedit这样的历史编辑扩展来减少冗长 - 但我不喜欢丢失历史。我只是不想用每个变化集来打扰他们。

问:有没有办法,现有钩子的一些配置,或者一些备用的hg扩展,可以设置为通知为folllws;

  1. 每个更改组一条消息(没关系)

  2. 单个用户为每个更改组提供的消息 - 而不仅仅是所有分支变更集消息的串联

  3. 仅过滤掉trunk的最大消息(hg用语中的默认分支)。即保留分支变更集消息,但不发送电子邮件。

    (注意:我的推送通常涉及分支上的几个变更集,然后合并到默认值。因此仅根据受影响的分支来过滤整个变更组是不够的。)

    < / LI>
  4. 不是在分支和分支上的每个更改之间进行diffstats,而是在主干上的“重要”变更集之间(默认分支) - 这可能是主干上的最大变化。

1 个答案:

答案 0 :(得分:1)

我担心不存在这样的扩展。通知扩展只是发送电子邮件的基本方式,只需要一点空间进行自定义。

听起来你对自己想要的东西有一个特别的想法。我建议您看看是否可以将其表示为revision set,然后在hg log挂钩中使用changegroup。将输出管道传输到mail,您就可以获得一个非常简单的通知扩展,您可以自定义内容!

我所说的是,通知扩展并不复杂,在很多情况下,它可以被hg log的合适调用替换。如果您想要将输出更改为hg loghg log -v以外的输出,您甚至可以hg log --patch使用default

棘手的部分(以及从您的问题中不完全清楚的部分)是过滤掉完全正确的变更集。你在上面的第4点提到了“重要的”变更集,但我并不完全确定是什么让变更集变得“重要”。如果从功能分支合并到hg log -r "$HG_NODE:tip and children(not branch(default)) and branch(default)" 时很重要,那么这样的事情可能就是一个开始:

default

通过获取非default变更集的子变更集并与{{1}}上的变更集相交,我们可以准确找到集成了要素分支的合并点。

我很抱歉答案是如此通用,但我认为你最好为自己想要的东西编写一个小的自定义shell脚本。