我有一个在Teamcity中建立并构建并测试一个mercurial分支的构建,然后应该标记该分支。从teamcity标签mercurial修订失败,“推动在分支上创建新的远程头'默认'”
该建筑物能够正常工作,但是在标记时会失败,并显示错误“推送在分支上创建新的远程头”默认值为“”。我觉得这有点奇怪,因为正在使用的分支不称为默认值。
我有一个在Teamcity中建立并构建并测试一个mercurial分支的构建,然后应该标记该分支。从teamcity标签mercurial修订失败,“推动在分支上创建新的远程头'默认'”
该建筑物能够正常工作,但是在标记时会失败,并显示错误“推送在分支上创建新的远程头”默认值为“”。我觉得这有点奇怪,因为正在使用的分支不称为默认值。
尽管我不能确定teamcity是如何以多个负责人结束的,也许在teamcity执行构建时有一个签入,但最终确实有多个负责人。因为它每次尝试推送结束失败时都会重复使用同一个mercurial目录。解决方案是删除在版本控制设置页面上设置的mercurial cache目录中的所有目录。然后重新启动teamcity。这给了一个干净的diretcory和一切按计划工作。
在Mercurial中,hg tag
创建一个更新集,更新.hgtags
。这听起来像你的父母不是分支头,所以hg tag
将创建一个分支,并且默认情况下不能推新分支头。只是一个猜测...发布一个示例脚本来说明问题。
您可以拉动远程存储库并使用hg heads
查看哪些头在哪里,谁创建的,以及是否要合并它们。
TeamCity尝试将标记更改签入到mercurial中,但由于用于结帐/签入的帐户更改而失败,这发生在我们身上。 TeamCity不知道如何合并变更集,因此它只是继续下载新的变更集,构建,然后尝试检查未合并的变更集,从而导致您看到的错误。
从buildserver中删除缓存是恢复的最简单方法。
是的,这就是我们发现的最后。 – 2010-09-28 12:31:39
我相信这是因为你的'默认'分支已关闭或合并到另一个分支。当推送在分支中创建新头时,TeamCity不强制推送并失败。
在版本8.0之前,TeamCity用于将分支'default'忽略VCS根设置,在8.0中它使用标记提交的分支。
我有一个CruiseControl.NET类似的问题,我们的构建需要30分钟,并在构建开始的时候,当它完成时,如果有人提交/推到中央仓库,它会打破构建与多头失败 – bwknight877 2011-05-09 19:25:48