2012-01-21 96 views
7

我需要的结果是,当克隆存储库时,代码位于不是默认分支的分支的最后一个版本,不需要执行“hg update mybranchname” 。 这可能吗?mercurial将一个分支设置为新的默认分支

+0

也许重复http://stackoverflow.com/questions/5424377/make-another-branch-default – phemios

+0

你是对的,在上面的链接问题是我的相同。对不起,我在谷歌搜索,但没有找到它。 – giuspen

回答

8

到现在为止的建议是:您应该always use default as your main branch,因为如果Mercurial在存储库中发现它,它将结账default

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

请注意,您的责任是将default书签指向您想要结帐的分支的头部,因此这不是100%的傻瓜。

+0

这似乎是完整的解决方案,谢谢。 – giuspen

+1

+1非常有趣!超。 – Andomar

1

你可以在分支合并到默认的分支,如:

hg merge mybranchname 
hg commit 

现在分支是效果的主要分支。您可以隐藏旧分支:

hg update mybranchname 
hg commit --close-branch 
+0

所以唯一的方法是从默认分支合并,我不能离开许多分支并将自定义分支设置为新的默认分支? – giuspen

+0

嗯,你可以'clone -b mybranchname http://repo.url localdir'开始签出“mybranchname”。我不认为有一种方法可以让“小费”指向另一个分支,因为“小费”本身就是一个真正的分支。 – Andomar

+0

@Andomar - 小费不是分支,而是特殊的bookpark,FYI –

0

默认分支不是“默认”,但从tip分支。

在克隆拉到任何现有的分支之前提交。

+1

对不起,我不明白你的答案 – giuspen

+0

你总是提交**的分支提示变更集**(如果不提交之前提交到另一个分支),而不是“默认”分支 –

+0

我已经在分支上提交了数百次我想成为默认分支。我明白这是只可能通过合并到默认分支 – giuspen

相关问题