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

Nei*_*den 49 mercurial branch tortoisehg

我正试图找到Mercurial并希望我在这里感到困惑!

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

我决定使用命名分支,所以下次我在'clone'上做的时候我在分支名称'case1212'下做了它,虽然它似乎已经在我的克隆上正确处理了提交,但是我无法将这些更改推回去'主'.给出的错误是:

abort: push creates new remote branch 'case1212'!
Run Code Online (Sandbox Code Playgroud)

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

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

Nat*_*ich 50

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

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

  • @gcb有时你真的想在服务器存储库上建立一个新的分支,以便其他人可以查看和使用它.但是如果它只是一个单独的头,因为你还没有在本地合并其他人的更改,那么你应该在推送之前合并,然后你不需要强制推送. (4认同)

Cas*_*ash 24

乌龟现在有一个Push new branch可能比安全更安全的选择Force pull or push.命令行工具有一个标志--new-branch.

更新:新的乌龟界面使其更难找到.切换到"同步"视图,然后单击选项并选择允许推送新分支.

  • 它确实和我充分利用它!我讨厌永久强制推动,只是觉得有点像root一样以root身份运行. (9认同)

Ry4*_*ase 19

它警告你,你的推动会创建新的远程头(在这种情况下是分支).如果你对它没问题,听起来就像你一样,你可以推进push -f.

这个检查在那里,所以如果你想要case1212分支不回到主服务器,你可以做hg push -r default,然后你不会看到这个警告,不发送case1212.

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

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