Version control hg推送的通知频率较低/冗长

Version control hg推送的通知频率较低/冗长,version-control,mercurial,mercurial-hook,Version Control,Mercurial,Mercurial Hook,我的项目使用hgext.notify。Current incoming.notify=每个变更集上都有单独的消息。考虑变更组通知,但即使它包含关于每个变更集的信息,也只包含在一封大电子邮件中 问题是: 我的工作作风是“早到、常到”。我做了很多小登记,通常是在分行。任务分支。最终整合 我的队友不喜欢在我的任务分支上看到我所有签入的消息 我们正在考虑使用诸如collapse或histedit之类的历史编辑扩展来减少冗长的内容,但我不喜欢丢失历史。我只是不想让他们为每个单独的变更集而烦恼 问:有没有一

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

问题是:

我的工作作风是“早到、常到”。我做了很多小登记,通常是在分行。任务分支。最终整合

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

我们正在考虑使用诸如collapse或histedit之类的历史编辑扩展来减少冗长的内容,但我不喜欢丢失历史。我只是不想让他们为每个单独的变更集而烦恼

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

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

  • 每个变更组由单个用户提供的消息—而不仅仅是所有分支变更集消息的串联

  • 仅过滤出主干(hg术语中的默认分支)的changest消息。即,保留分支变更集消息,但不发送电子邮件

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

  • diffstats不是在tip和分支上的每个changest之间,而是在主干(默认分支)上的“重要”变更集之间-这可能是主干上的每个changest


  • 恐怕没有这样的扩展。notify扩展只是发送电子邮件的一种基本方式,有一点定制空间

    听起来你对你想要的东西有一个特别的想法。我建议您看看是否可以将其表述为一个,然后在
    changegroup
    hook中简单地使用
    hglog
    。通过管道将输出传输到
    邮件
    ,您就拥有了一个非常简单的notify扩展,您可以根据自己的内容进行定制

    我想说的是,notify扩展没有那么复杂,在许多情况下,它可以被
    hglog
    的适当调用所取代。如果您想更改比
    hg log-v
    hg log--patch
    更大的输出,甚至可以使用for
    hg log

    棘手的部分(从你的问题中还不完全清楚的部分)是过滤出正确的变更集。您在上面第4点提到了“重要”变更集,但我不完全确定是什么使变更集“重要”。如果从功能分支合并到
    默认值
    ,这一点很重要,那么像这样的事情可能是一个开始:

    hg log -r "$HG_NODE:tip and children(not branch(default)) and branch(default)"
    
    通过获取非
    default
    变更集的子变更集,并与
    default
    上的变更集相交,我们精确地得到了集成特征分支的合并点


    很抱歉,答案太笼统了,但我认为你最好还是为你想要的编写一个小型定制shell脚本。

    我认为你的队友应该克服自我。你的工作流程是一个很好的实践,他们不应该阻止它,如果他们应该采用它的话。瓦解历史绝对是最糟糕的解决方案。我想更改通知邮件是一个可行的折衷方案,但老实说,小型邮件的全部目的是使其更易于审查。变更组通知对他们来说不可接受吗?变更组通知不完整。@LaurensHolst变更组通知不充分。不仅仅是通知-他们不想在hg日志中看到签入。@LaurensHolst-将hg日志限制为默认分支还不够好,因为这会吸收所有提交到默认分支的分支。我们同意使用HgRebase-collapse(HgCollapse和HgHistEdit经常崩溃)。@LaurensHolst-但我认为真正的问题是HgLog。我不久前使用的RCS和CVS工具——见鬼,我写了其中一些工具,rcslog merge——可能会限制您只看到特定分支上的提交。当您进行分支合并时,如果您愿意,您可能只会看到合并的提交消息(但您需要认真,并使其有意义)。//也就是说,我认为这反映了HG日志的一个弱点。我试图说,考虑到中继线上的每个变更集是合理的,默认分支是重要的。好的,当然,你决定什么是“有趣的”。我的建议基本上是:根据您的需要推出我们自己的mini-notify扩展。notify扩展并不太复杂,可以用调用
    hglog
    来代替,也许可以使用合适的。(我会在答案中加入一些。)谢谢。知道一些东西不存在是很重要的——避免浪费工作。我会考虑自己滚。虽然,顺便说一句,这些不喜欢大量电子邮件的家伙也不想要细粒度的签入-他们希望我将任务分支的所有细粒度的graon签入折叠起来,在任务分支中,我使用“chck in previous and frequency”philosphy,使用hg rebase将其折叠到一个签入中(或hg崩溃或hg histedit,尽管后者经常破裂)。