从teamcity标记mercurial修订失败,“push在分支上创建新的远程头部'默认'”

时间:2010-09-17 14:13:57

标签: mercurial teamcity

我在Teamcity中设置了一个构建和测试mercurial分支的构建,然后应该标记该分支。

建筑物正常工作但是当涉及到标签时它失败并出现错误“push在分支上创建新的远程头部'默认'”。我发现这有点奇怪,因为正在使用的分支不是默认的。

5 个答案:

答案 0 :(得分:2)

在Mercurial中,hg tag创建了一个更新.hgtags的变更集。听起来你的工作父母不是分支头,所以hg tag将创建一个分支,默认情况下不能推送新的分支头。只是一个猜测......发布一个说明问题的示例脚本。

答案 1 :(得分:1)

当TeamCity尝试将标记更改签入mercurial但由于其用于结帐/签入的帐户发生更改而失败时,发生了这种情况。 TeamCity不知道如何合并变更集,因此它只是继续下载新的变更集,构建,然后尝试检查未合并的变更集,其中给出了您看到的错误。

从构建服务器中删除缓存是最简单的恢复方法。

答案 2 :(得分:0)

您可以拉出远程存储库并查看hg heads哪些人员,创建者以及是否要合并它们。

答案 3 :(得分:0)

虽然我不能确定teamcity如何最终得到多个头,但是当teamcity正在执行构建时,也许有一个签到,它确实最终有多个头。因为它每次尝试推送时都会重复使用相同的mercurial目录。解决方案是删除mercurial cache目录中的所有目录,如在Version control settings页面上设置的那样。然后重启teamcity。这给了一个干净的指导,一切都按计划进行。

答案 4 :(得分:0)

我认为发生这种情况是因为您的“默认”分支已关闭或合并到另一个分支中。当push在分支中创建新头时,TeamCity不会强制推送和失败。

在版本8.0之前,TeamCity过去常常推入分支“默认”忽略VCS根设置,在8.0中它使用来自标记提交的分支。