mercurial 将一个分支设置为新的默认分支

Posted

技术标签:

【中文标题】mercurial 将一个分支设置为新的默认分支【英文标题】:mercurial set a branch as the new default branch 【发布时间】:2012-02-15 16:40:19 【问题描述】:

我需要的结果是,在克隆存储库时,代码位于不是默认分支的分支的最新版本,无需执行“hg update mybranchname”。 这可能吗?

【问题讨论】:

可能与***.com/questions/5424377/make-another-branch-default重复 你是对的,上面链接的问题和我的一样。很抱歉,我在谷歌搜索但没有找到。 【参考方案1】:

到目前为止的建议是:您应该 always use default as your main branch,因为如果 Mercurial 在存储库中找到 default,它将检查它。

这在 Mercurial 2.1 中有所改变:您现在可以关闭 default 分支(如果有的话)并在其位置添加一个名为 default 的书签。新的克隆将检索书签并对其进行更新,从而在此过程中有效地切换到另一个分支。

请注意,您有责任将 default 书签指向您要结帐的分支的负责人,因此这不是 100% 万无一失的。

【讨论】:

【参考方案2】:

默认情况下,默认分支不是“默认”,而是从提示分支。

只需在 clone-pull 之前提交到任何现有分支。

【讨论】:

抱歉没看懂你的回答 你总是提交到 tip 变更集的分支(如果在提交到另一个分支之前没有提交),而不是“默认”分支 我已经在一个我想成为默认分支的分支上提交了数百次。我知道这只能通过合并到默认分支来实现 我看不出这个答案与问题有什么关系,也不知道它意味着什么。【参考方案3】:

您可以将分支合并到默认分支中,例如:

hg merge mybranchname
hg commit

现在分支实际上是主分支。您可以使用以下命令隐藏旧分支:

hg update mybranchname
hg commit --close-branch

【讨论】:

所以唯一的方法是从默认分支合并,我不能离开很多分支并将自定义分支设置为新的默认分支? 嗯,您可以clone -b mybranchname http://repo.url localdir 以签出“mybranchname”开头。我认为没有办法让“tip”指向另一个分支,因为“tip”本身就是一个真正的分支。 @Andomar - 小费不是分店,而是特别的书店,仅供参考 我的目标是用户克隆所有不带参数的存储库,并且在克隆后的所有存储库中,他针对我想要的版本(分支中的最新版本)。我可以看到获得此结果的唯一方法是通过从非默认分支合并到默认分支。感谢您的澄清。

以上是关于mercurial 将一个分支设置为新的默认分支的主要内容,如果未能解决你的问题,请参考以下文章

Mercurial:获得分支的精确副本

合并来自不同存储库的 Mercurial 分支

使用Mercurial SCM进行分支

如何在 Mercurial 中重复合并分支

Mercurial:在一个仓库中的分支之间合并一个文件

如何将一些变更集移动到mercurial中的新分支