我昨天花了很多时间在Google上搜索,并通过SO查找答案,但找不到任何人遇到我遇到的确切问题。
不久前,我在当地的Mercurial仓库中创建了第176版的分支,并在Rev 196创建了命名分支“Port to VS2010”。请参阅下面的TortoiseHg屏幕截图。我已经能够成功地将另一个“006-x86和x64 Builds”分支推送到远程仓库,但每当我尝试推送新分支时,我都会在日志中收到此错误:
abort: push creates new remote head 207852dab969!
hint: merge or see "hg help push" for details about pushing new heads
如果没有合并或强迫它,我怎么能推动这个分支?它代表了一个可能永远不需要的试验性解决方案,但我想保留它以防万一。
(注意:您会注意到Rev列中有三个间隙。它们代表“006-x86和x64 Builds”分支的非实质性变化。我删除了它们以缩短图像。)
更新: Per Lazy Badger:
acs_FromBuildServer_edited% hg heads -T "{node|short} {branch}\n"
% hg heads -T "{node|short} {branch}\n"
24af28a99211 006-x86 and x64 Builds
69be2af28b7c Port to VS2010
207852dab969 default
86e00db4ba95 005-No Register CardContext
9df44947cc8b 004-Hack typedef boost shared_ptr
81055bcdb3cc 003-Use boost shared_ptr
6358126f4757 002-Add Meyers Fix
1e23ed012883 001-Solution
bcc01f6fbef4 default
[command completed successfully Fri Feb 12 11:15:36 2016]
acs_FromBuildServer_edited%
答案 0 :(得分:2)
实际上,你只有两个选择。您可以合并,也可以强制它。我认为在你的情况下你想强制它。
通常情况下,您不想强迫新的头脑,因为其他开发者可能不知道新头。既然这是一个你想留给后代的实验,那么强迫它就行了。如果你发现你需要它,你会在那时合并它。
答案 1 :(得分:1)
似乎你可能混合了两个无关的问题
必须使用默认推送命令(CLI中的--new-branch
)或THG GUI中的“允许推送到新分支”复选框添加选项来推送新(命名)分支
在共同的坏主意推动额外的头脑,更好地在预先存在的分支中找到这个新头并合并
嗯,正如预期的那样,你有两个default
分支头
207852dab969 default
...
bcc01f6fbef4 default
并根据错误消息头207852dab969
(r195)是新的,尚未推送。不,关闭分支将不允许您推送分支。如果您不想合并或强制推送,可以将分歧历史(从分支点)移动到另一个命名分支