Mercurial:查看分支与默认合并的频率

问题描述

|| 假设我有两个分支,认分支和mybranch,我想写一个小脚本来看看: mybranch与认值合并的频率(更改从mybranch变为认值) Mybranch从认值合并的频率(更改从认值转换为Mybranch) #1的一些伪代码
    m_lastmergetime = 0
    for each m in [all merges with default from mybranch]
        m_mergetime = m.date_in_hours
        m_timebetweenmerges = m_mergetime - m_lastmergetime
        if m_lastmergetime > 0
            print m_timebetweenmerges
子步骤: 一个Mercurial查询,该查询将所有合并与mybranch中的认合并匹配 Mercurial样式,以小时为单位显示日期 使用Bash或Python按照上述伪代码计算合并之间的时间 情况2将非常相似。我只需要: 一个Mercurial查询,它与认情况下与mybranch的所有合并匹配     

解决方法

        要查找分支X上从分支Y合并的所有变更集,请发出以下Mercurial命令:
hg log --rev \"children(branch(X)) and children(branch(Y)) and branch(X)\"
要找到分支Y上从分支X合并(即相反方向)的所有内容,只需将那里的最后一个分支名称更改为Y:
hg log --rev \"children(branch(X)) and children(branch(Y)) and branch(Y)\"
                              ^                       ^              ^
                              +------ leave these ----+              |
                                                                     |
                                      but change this ---------------+
基本上,查询表明您需要以下所有变更集: 是分支X上任何变更集的子代 也是分支Y上任何变更集的子代(只有合并变更集具有两个父代,因此可以同时是两个分支上的变更集的子代) 在分支Y上(因此您已合并到分支Y)