我有一些分支和一个ID为X的提交,我希望Mercurial返回一个存在该提交的分支列表。
Mercurial已经在每次提交中存储了有关分支的信息,但仅存储了引入该提交的分支。如果将该提交合并到其他分支中,则commit仍将仅存储原始分支名称。
答案 0 :(得分:10)
我认为你可以用这个公式得到你想要的东西
hg log -r 'descendants(X) and head()'
head()
包括所有已命名的分支头,因此即使分支的尖端已合并到另一个命名分支中,它仍将使用此公式列出。
如果您只想显示分支名称,则可能需要对--template '{branches}\n'
命令使用hg log
指令。如果每个命名分支有多个头,则最终可能会使用uniq
或类似的。
编辑:描述这将做什么
A----B----C----D----E Branch: default (E is a merge of F into D)
\ \ \ /
\ \ F Branch B1 (closed)
\ G-----H Branch B2
\ \
\ I Branch B2
J Branch B3
如果你执行hg log -r 'descendants(C) and head()'
,你应该得到E,F,H和I.
head()
,因此它会显示在此列表中