无法将分支推送到远程 Hg 仓库
Can't push branch to remote Hg repo
我昨天通过 Google 搜索并通过 SO 寻找答案,但找不到任何人遇到我遇到的确切问题。
不久前,我在本地 Mercurial 存储库中的 Rev 176 创建了一个分支,并在 Rev 196 创建了命名分支,"Port to VS2010." 请参见下面的 TortoiseHg 屏幕截图。我已经能够成功地将另一个“006-x86 和 x64 构建”分支推送到远程仓库,但是每当我尝试推送新分支时,我都会在日志中收到此错误:
abort: push creates new remote head 207852dab969!
hint: merge or see "hg help push" for details about pushing new heads
没有合并或强制,我怎么推这个分支?它代表了一个可能永远不需要的暂定解决方案,但我想保留它以防万一。
(注意:您会注意到 Rev 列中的三个空白。它们代表“006-x86 和 x64 构建”分支的非实质性变更集。我删除它们是为了缩短图像。)
更新:
每个懒惰的獾:
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 个头)
- 推送新的(远程不存在的)分支
新的(命名的)分支必须在默认推送命令(CLI 中的--new-branch
)或 THG GUI 中的"Allow push to new branch" 复选框中添加选项的情况下推送
在共同的坏主意中加入额外的头,最好在预先存在的分支中找到这个新头并合并
嗯,不出所料,你有两个 default
分支的负责人
207852dab969 default
...
bcc01f6fbef4 default
并且根据错误消息,头 207852dab969
(r195) 是新的,尚未推送。不,关闭分支将 而不是 允许您推送分支。如果你不想合并或强制推送,你可以将不同的历史(从分支点)移动到另一个命名的分支
我昨天通过 Google 搜索并通过 SO 寻找答案,但找不到任何人遇到我遇到的确切问题。
不久前,我在本地 Mercurial 存储库中的 Rev 176 创建了一个分支,并在 Rev 196 创建了命名分支,"Port to VS2010." 请参见下面的 TortoiseHg 屏幕截图。我已经能够成功地将另一个“006-x86 和 x64 构建”分支推送到远程仓库,但是每当我尝试推送新分支时,我都会在日志中收到此错误:
abort: push creates new remote head 207852dab969!
hint: merge or see "hg help push" for details about pushing new heads
没有合并或强制,我怎么推这个分支?它代表了一个可能永远不需要的暂定解决方案,但我想保留它以防万一。
(注意:您会注意到 Rev 列中的三个空白。它们代表“006-x86 和 x64 构建”分支的非实质性变更集。我删除它们是为了缩短图像。)
更新: 每个懒惰的獾:
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 个头)
- 推送新的(远程不存在的)分支
新的(命名的)分支必须在默认推送命令(CLI 中的--new-branch
)或 THG GUI 中的"Allow push to new branch" 复选框中添加选项的情况下推送
在共同的坏主意中加入额外的头,最好在预先存在的分支中找到这个新头并合并
嗯,不出所料,你有两个 default
分支的负责人
207852dab969 default
...
bcc01f6fbef4 default
并且根据错误消息,头 207852dab969
(r195) 是新的,尚未推送。不,关闭分支将 而不是 允许您推送分支。如果你不想合并或强制推送,你可以将不同的历史(从分支点)移动到另一个命名的分支