Mercurial Can';t将分支推送到远程Hg回购

Mercurial Can';t将分支推送到远程Hg回购,mercurial,tortoisehg,Mercurial,Tortoisehg,我花了昨天的时间在谷歌上搜索,在SO中寻找答案,但找不到任何人有我遇到的确切问题 不久前,我在本地Mercurial回购协议中创建了一个版本为176的分支机构,并在版本为196时创建了命名分支机构“VS2010端口”。请参见下面的龟甲屏蔽盖。我已经能够成功地将另一个“006-x86和x64构建”分支推送到远程回购,但每当我尝试推送到新分支时,我都会在日志中看到以下错误: abort: push creates new remote head 207852dab969! hint: merge o

我花了昨天的时间在谷歌上搜索,在SO中寻找答案,但找不到任何人有我遇到的确切问题

不久前,我在本地Mercurial回购协议中创建了一个版本为176的分支机构,并在版本为196时创建了命名分支机构“VS2010端口”。请参见下面的龟甲屏蔽盖。我已经能够成功地将另一个“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中的“允许推送到新分支”复选框来推送

在坏主意中推送额外的头,最好在预先存在的分支和合并中找到这个新头

正如所料,您有两个
default
分支的负责人

207852dab969 default
...
bcc01f6fbef4 default

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

  • 匿名分支(某个分支的2个负责人)
  • 正在推送新分支(远程分支上不存在)
新的(命名的)分支必须通过添加默认推送命令选项(CLI中的“
--New branch
”)或THG GUI中的“允许推送到新分支”复选框来推送

在坏主意中推送额外的头,最好在预先存在的分支和合并中找到这个新头

正如所料,您有两个
default
分支的负责人

207852dab969 default
...
bcc01f6fbef4 default

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

检查(并在此处显示)您的回购头
hg heads-t“{node | short}{branch}\n”
(或在THG中使用revset)-我希望现有分支中有新的头(但看不到)。检查(并在此处显示)您的repo的heads
hg heads-T“{node | short}{branch}\n”
(或者在THG中使用revset)-我希望现有分支中有新的head(虽然看不到)。这已经检查过了,但我仍然收到“new remote head”错误消息。这是一个实验。通常,手动对这两个分支进行相同的更改。人们永远不会想要合并它。我听说过要关闭一家分行。在按下之前关闭此分支会有帮助(或伤害)吗?这已经检查过了,但我仍然收到“new remote head”错误消息。这是一个实验。通常,手动对这两个分支进行相同的更改。人们永远不会想要合并它。我听说过要关闭一家分行。在推之前关闭这个分支会有帮助(或伤害)吗?这是一个客户在EoL附近的遗留软件,我准备离开。我想确保他们备份了这个废弃的分支,但我也不想破坏他们的远程回购。“强迫”听起来很危险。因为它接近EoL,所以永远不会有超过一个人在处理这个代码,他们会被告知双头情况。Mercurial/THG只是警告我,我会有两个脑袋,因为它可能会让人困惑,或者可能会有更广泛、更严重的影响?不,只是警告你,它会产生额外的脑袋。这就是全部。在一个典型的工作流中,这是不好的,因为您不费吹灰之力就看不到匿名分支上的新更改。通常,解决此问题的标准方法是
拉入
合并
,然后
推入
。因为您的更改是实验性的,所以在不同的分支上是有意义的。我假设他们有一个合理的构建系统,它不只是构建
tip
上的任何内容。如果他们不这样做,那么他们将构建您的实验性变更,直到推出新的变更。我将把生产分支中最新的变更集作为tip,所以,恕我直言,这不应该是一个问题。无论如何,没有自动构建过程,所以希望人类能够从生产分支知道如何构建。我会给实验分支的负责人贴上类似“实验-不要构建”的标签。这是一个靠近EoL的客户遗留软件,我准备离开。我想确保他们备份了这个废弃的分支,但我也不想破坏他们的远程回购。“强迫”听起来很危险。因为我