gpt4 book ai didi

Mercurial:测试分支是否包含变更集

转载 作者:行者123 更新时间:2023-12-03 06:36:53 26 4
gpt4 key购买 nike

我想知道是否有一个 Mercurial 命令/扩展可以只测试给定的变更集是否在分支中。该命令类似于:

hg contains [-r branch] changeset_id

并且应该检查给定的变更集是否在当前/给定的分支中,仅返回"is"或“否”。

我知道“debugancestor”命令,但“是/否”答案更容易阅读。

如果有,是否也可以检查移植的变更集?

编辑:该场景位于一个存储库中,其中命名分支有多个头。假设一个分支名为“dev-X”,具有超过 1 个头和较长的历史记录,至少无法通过各种图形可视化来跟踪它。我想弄清楚分支“dev-X”中的变更集X是否已 merge 到“dev-X”的另一个头中。因此,我不能使用分支名称,而只能使用变更集编号/哈希来指定分支。

最重要的是,我试图查明变更集 X 是否已移植到那里,可能需要超过 1 个移植步骤。我知道必要的信息存储在 Mercurial 中(我在篡改 Mercurial 内部结构时看到过它),只是无法通过命令行界面访问它。

最佳答案

这个怎么样:

hg log -r changeset_id -b branchname

如果 changeid_id 包含分支 branchname 上的更改,则会给出一些输出,否则不返回任何输出。

如果需要,您可以将其包装在 bash 函数中:

function contains() {
if [ "$(hg log -r $1 -b $2)" == "" ]
then
echo no
else
echo yes
fi
}

它的作用是:

$ contains 0 default
yes
$ contains 0 other
no

关于Mercurial:测试分支是否包含变更集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681366/

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