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

Del*_*ted 2 mercurial

假设我有两个分支,默认和mybranch,我想写一个小脚本来看:

  1. mybranch与默认值合并的频率(更改从mybranch变为默认值)
  2. 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
Run Code Online (Sandbox Code Playgroud)

Sub.steps:

  1. 一个Mercurial查询,它匹配默认情况下mybranch的所有合并
  2. Mercurial的样式,以小时为单位显示日期
  3. 使用Bash或Python计算合并之间的时间,如上面的伪代码

案例#2将非常相似.我只需要:

  1. 一个Mercurial查询,它匹配默认情况下与mybranch的所有合并

ang*_*son 7

要查找从分支Y合并的分支X上的所有更改集,您将发出以下Mercurial命令:

hg log --rev "children(branch(X)) and children(branch(Y)) and branch(X)"
Run Code Online (Sandbox Code Playgroud)

要查找从分支X合并的分支Y上的所有内容(即相反的方向),只需将最后一个分支名称更改为Y:

hg log --rev "children(branch(X)) and children(branch(Y)) and branch(Y)"
                              ^                       ^              ^
                              +------ leave these ----+              |
                                                                     |
                                      but change this ---------------+
Run Code Online (Sandbox Code Playgroud)

基本上查询说你想要所有变更集:

  • 是分支X上任何变更集的子代
  • 也是分支Y上的任何变更集的子节点(只有合并变更集有两个父节点,因此可以同时是两个分支上的变更集的子节点)
  • 分支Y(这样你就合并分支Y)