将addind SVN subrepo添加到Mercurial之后的TeamCity错误

时间:2015-07-21 18:31:16

标签: svn mercurial teamcity mercurial-subrepos

我将SVN项目作为子库存储添加到我的Mercurial项目中(遵循this说明),现在TeamCity无法构建Mercurial项目。我收到以下错误:

[Updating sources] Failed to build patch for build #???, VCS root: "mercurial: https://myrepo" {instance id=41, parent internal id=22, parent id=mercurial_repo_id, description: "mercurial: https://myrepo"}, due to error: Cannot build patch: ClientAbortException:  java.io.IOException

[Updating sources] Problem while loading patch data stream: Failed to obtain stream from server. Server status: 504 (Gateway Time-out)

Problem while loading patch data stream: Failed to obtain stream from server. Server status: 504 (Gateway Time-out)

java.io.IOException: Failed to obtain stream from server. Server status: 504 (Gateway Time-out)

当我在本地克隆回购时,一切顺利,但TeamCity没有看到子回报,并且更改图中没有子回购。我尝试添加不同的构建步骤,但它没有帮助。我还尝试将TeamCity中的VCS签出模式更改为代理签出,但由于自签名证书而出现另一个错误:

Failed to perform checkout on agent: 'hg --config ui.interactive=False clone -U --uncompressed https://...' command failed.
stderr: abort: could not find web.cacerts: /etc/ssl/ca-bundle.pem

但是,结账模式不应该是错误的原因,因为这个问题已在8版TeamCity中解决(我们使用8.0.6)。

如何配置TeamCity以使用Mercurial repo中的SVN subrepo?

感谢。

UPD:

我终于找到了回答:我在执行代理结账时需要修复错误(添加证书或强制它全部信任),问题解决了!

1 个答案:

答案 0 :(得分:1)

我没有使用SVN subrepos做到这一点,但是我已经用hg子目录做了这个,但诀窍是teamcity服务器的hgrc文件需要配置为静默获取SVN repo所以你可能需要提供身份验证信息,也许还需要信任hgrc文件中的证书。