0

我的项目使用 hgext.notify。目前,incoming.notify = 每个变更集上的单独消息。考虑到变更组通知,但即便如此,它也包含有关每个变更集的信息,都在一封大电子邮件中。

这是问题所在:

我的工作作风是“早点经常入住”。我做了很多小检查,通常在分支机构。任务分支。最终融合。

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

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

问:有没有办法,现有钩子的一些配置,或一些替代的 hg 扩展,可以设置为如下通知;

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

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

  3. 只过滤掉更改最多的消息,例如,主干(hg 用语中的默认分支)。即留下分支变更集消息,但不发送电子邮件。

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

  4. diffstats 不在尖端和分支上的每个变更之间,而只是在主干(默认分支)上的“重要”变更集之间 - 这可能是主干上的重大变更。

4

1 回答 1

1

恐怕不存在这样的扩展。通知扩展只是发送电子邮件的一种基本方式,具有一点自定义空间。

听起来你对自己想要什么有一个特别的想法。我建议您看看是否可以将其制定为修订集,然后简单地hg logchangegroup挂钩中使用。通过管道输出mail,您就拥有了一个非常简单的通知扩展程序,您可以根据自己的内心内容进行自定义!

我的意思是,通知扩展并不复杂,在许多情况下,它可以被适当的hg log. 您甚至可以使用自定义模板hg log更改输出而不是更改hg log -v或执行的hg log --patch操作。

棘手的部分(以及从您的问题中不完全清楚的部分)是过滤出完全正确的变更集。您在上面的第 4 点中提到了“重要”变更集,但我不完全确定是什么让变更集“重要”。如果从功能分支合并到 时很重要default,那么可能是这样的开始:

hg log -r "$HG_NODE:tip and children(not branch(default)) and branch(default)"

通过获取非default变更集的子变更集并与 上的变更集相交default,我们准确地获得了集成特征分支的合并点。

对不起,答案太笼统了,但我认为你最好为你想要的编写一个小的自定义 shell 脚本。

于 2012-01-05T21:56:27.457 回答