无法将分支推送到远程Hg仓库

时间:2016-02-11 22:13:13

标签: mercurial tortoisehg

我昨天花了很多时间在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”分支的非实质性变化。我删除了它们以缩短图像。)

enter image description here

更新: 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% 

2 个答案:

答案 0 :(得分:2)

实际上,你只有两个选择。您可以合并,也可以强制它。我认为在你的情况下你想强制它。

通常情况下,您不想强迫新的头脑,因为其他开发者可能不知道新头。既然这是一个你想留给后代的实验,那么强迫它就行了。如果你发现你需要它,你会在那时合并它。

答案 1 :(得分:1)

似乎你可能混合了两个无关的问题

  • 匿名分支(某个分支的2个负责人)
  • 推新(不存在于远程)分支

必须使用默认推送命令(CLI中的--new-branch)或THG GUI中的“允许推送到新分支”复选框添加选项来推送新(命名)分支

Interface

Options

在共同的坏主意推动额外的头脑,更好地在预先存在的分支中找到这个新头并合并

嗯,正如预期的那样,你有两个default分支头

207852dab969 default
...
bcc01f6fbef4 default

并根据错误消息头207852dab969(r195)是新的,尚未推送。不,关闭分支将允许您推送分支。如果您不想合并或强制推送,可以将分歧历史(从分支点)移动到另一个命名分支