为什么我不能将此更改推送到我的“主要”mercurial存储库?

时间:2010-03-02 18:01:36

标签: mercurial branch tortoisehg

我想找到Mercurial并希望我在这里感到困惑!

我有一个我已克隆的存储库('main')('clone'),都在我自己的机器上。两者完全相同。

我决定使用命名分支,所以下次我在'clone'上做了我在'case1212'的分支名称下做了它,虽然它似乎在我的克隆上正确处理了提交,但我无法推送这些变化回到了“主要”。给出的错误是:

abort: push creates new remote branch 'case1212'!

...它表明我可能需要先合并?我应该在“克隆”存储库中合并什么?当我试图从'main'拉出时,没有任何变化。

我很确定我真的希望它在我的'main'存储库中创建一个远程分支,以便从中更新的人可以看到该分支。

3 个答案:

答案 0 :(得分:50)

Mercurial的默认行为阻止您创建远程分支。如果你想这样做,你需要强制推动。

在您显示的窗口中同步菜单,有一个强制推送选项。

答案 1 :(得分:24)

Tortoise现在有一个选项Push new branch,可能比Force pull or push更安全。命令行工具有一个标志--new-branch。

更新:新的乌龟界面让它更难找到。切换到Synchronize视图,然后单击options并选择allow push of new branch。

答案 2 :(得分:19)

它警告你,你的推送会创建新的远程头(在这种情况下是分支)。如果你对此感到满意,听起来就像你一样,你可以推进push -f

此检查在那里,如果您希望case1212分支不返回主服务器,您可以hg push -r default,然后您不会看到此警告,也不会发送case1212。​​

一旦你为case1212做了这个,你就不会再看到警告,因为case1212已经存在了。

较新版本的mercurial使得在新头部成为新分支的情况下,该警告听起来不那么可怕。