我想弄清楚为什么Mercurial认为我在这种情况下想要创建一个新的远程分支:
alt text http://a.yfrog.com/img716/8421/9vz.png
是否只是试图告诉我分支将作为封闭分支显示在元数据中?
我在Mercurial v1.6.1023
编辑:远程存储库中唯一的分支名为“default”
答案 0 :(得分:6)
默认情况下,hg push
将推送本地存储库中不在远程存储库中的所有变更集。如果你在本地分支上有一些变化(在你的情况下是Environment_Switching
) - 即使是一个封闭的分支 - 他们也会去,除非你使用hg push -b default
明确地排除它们(假设您尚未将该分支合并回default
)。
要回答你的问题,这只是警告你正在创建一个新的远程分支。
编辑:hg push -r default
和hg 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
,然后您将看不到该消息。