gpt4 book ai didi

Mercurial:查找存在提交的所有分支

转载 作者:行者123 更新时间:2023-12-02 20:38:38 25 4
gpt4 key购买 nike

我有几个分支和一个 ID 为 X 的提交,我希望 Mercurial 返回该提交所在的分支列表。

Mercurial 已经在每次提交中存储了有关分支的信息,但仅限于引入该提交的分支的信息。如果您将该提交 merge 到其他某个分支,提交仍将仅存储原始分支名称。

最佳答案

我认为你可以通过这个公式得到你想要的

hg log -r 'descendants(X) and head()'

head() 包括所有命名分支头,因此即使一个分支的尖端已 merge 到另一个命名分支中,它仍然会用此公式列出。

如果您只想显示分支名称,则可能需要对 hg log 命令使用 --template '{branches}\n' 指令。如果每个命名分支有多个头,您最终可能会使用 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。

  • E:您得到 E,因为“默认”是分支头,即使它有一个特殊的名称。
  • F 出现是因为即使您 merge 到 E,它仍然是一个 head(),所以它出现在这个列表中
  • G 不是一个头,尽管它包含 C
  • H 是一个头,显然是 C 的后代
  • I从G分支出来,也是一个头,并且明显包含C
  • J 是一个头,但没有 C 作为祖先

关于Mercurial:查找存在提交的所有分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com