如何将所有命名分支作为特定变更集的一部分

时间:2013-01-21 14:22:03

标签: mercurial

鉴于

---a----b----c----d----e----f (default)
     |  |           |  
     ---g (1.0)     ----h---i---(2.0)

我想知道,对于一个特定的变更集,它命名分支(在我的情况下是发布),这个变更集是(命名分支的头部的父节点)的一部分。

输入 - >输出

  • a - >默认,1.0,2.0
  • g - >默认,1.0,2.0
  • d - >默认,2.0
  • e - >默认
  • h - > 2.0

我怎样才能以最简单的方式做到这一点(我猜是hg log祖先的东西?)?我不希望将分支名称作为输入,而是动态地使用所有(开放)命名分支。

2 个答案:

答案 0 :(得分:1)

对于与我有同样问题的其他人......

我发现扩展程序包含https://bitbucket.org/resi/hg-contains,它完全符合我的要求。

hg headscontaining -b --revno [changesetId] --template {branches}

答案 1 :(得分:0)

[revsetalias]
bd($1) = descendants($1) - branch(default)

使用中:hg bd(CSET-ID)

编辑:嗯,我的初始版本比需要的更好(并且不可用) - 它立即返回分支列表,在最终的Mercurial命令中很难用作revset。

对于单个操作结果, revset用于模板化日志

hg log -r "bd(CSET)" --template "{branch}\n"