Mercurial推着封闭的分支机构

时间:2010-08-12 18:32:30

标签: mercurial

我想弄清楚为什么Mercurial认为我在这种情况下想要创建一个新的远程分支:

alt text http://a.yfrog.com/img716/8421/9vz.png

是否只是试图告诉我分支将作为封闭分支显示在元数据中?

我在Mercurial v1.6.1023

编辑:远程存储库中唯一的分支名为“default”

3 个答案:

答案 0 :(得分:6)

默认情况下,hg push将推送本地存储库中不在远程存储库中的所有变更集。如果你在本地分支上有一些变化(在你的情况下是Environment_Switching) - 即使是一个封闭的分支 - 他们也会去,除非你使用hg push -b default明确地排除它们(假设您尚未将该分支合并回default)。

要回答你的问题,这只是警告你正在创建一个新的远程分支。

编辑:hg push -r defaulthg push -b default是等效的。来自hg help revs的输出:

  

Mercurial支持多种指定单个修订的方法。 ... 为简洁而删除的文本 ...分支名称表示该分支的最末端修订。

推动分支的最末端修订也将推动其祖先,这是分支上其余的变更集。

答案 1 :(得分:0)

编辑:误解了这个问题。以下是如何在一个分支中获得多个头部。


如果您的基座与遥控器不同,通常会创建一个新头 我在以下工作流程中看到了这一点:
R1用户A提交和推送
R1用户B拉了
R2用户A提交和推送
R'用户B提交和推送

Mercurial将决定推送用户B是基于R1,而服务器是在R2上,因此它只接受用户B在不同分支上的更改。
要防止这种情况发生,请在本地提交用户B的更改,然后执行hg pull,然后执行hg merge并将更改与远程更改合并。 您可以将更改推送到远程服务器。

答案 2 :(得分:0)

是的,当您执行hg push时,即使是已关闭的分支也会被推送。如果您想推送默认值,则可以执行hg push -r default,然后您将看不到该消息。