7

我刚刚在 Windows 上设置了 TeamCity 8.0,以便在四个独立的 Git 存储库中构建项目(Visual Studio 解决方案)。它在其中三个上按预期工作,但在一个上它卡在Updating sources。四个 VCS 根的设置是相同的(除了 Git 存储库获取 URL)。

所有 TeamCity 项目都使用服务器端结帐。

有问题的项目的构建日志包含

[15:36:34]:bt1(运行 41m:38s)

[15:36:34]:检查更改(运行 41m:37s)

[15:36:37]:发布内部工件

[15:36:38]:[发布内部工件] 发送 build.start.properties.gz 文件

[15:36:37]:清除临时目录:C:\TeamCity\buildAgent\temp\buildTmp

[15:36:37]:结帐目录:C:\TeamCity\buildAgent\work\62d0281b7178c739

[15:36:37]:更新来源:服务器端结帐(运行 41m:34s)

[15:36:38]:[更新来源] 将执行干净结帐。原因:代理没有任何版本的项目源

[15:36:38]:[更新源]为 VCS 根目录构建和缓存干净的补丁:git@qa.company.com:Company.WebSite.git#master

在构建代理上使用 Process Monitor,我可以看到它正在使用ReadFile操作敲击以下文件夹。

C:\ProgramData\JetBrains\TeamCity\system\caches\git\git-11F9493A.git\objects\pack\pack-1490ccc8f7896ab876413465c4b48e87448bed35.pack

.pack文件的大小约为 300MB,我相信它与 Git 存储库的大小相同。

我尝试删除此文件夹并重新启动 TeamCity 构建代理并构建服务器 Windows 服务,但它只是重新创建,然后 TeamCity 再次对其进行锤击。

对于如何解决此类问题,还有其他建议吗?

4

3 回答 3

6

接受的答案中的场景不适用于我。我能够通过简单地为同一个 repo 创建一个新的 VCS 根并将其附加到我的构建配置来解决这个问题。

于 2015-04-22T17:00:58.613 回答
5

我在TeamCity 论坛上交叉发布了这个,并在那里得到了答案。

TeamCity 的默认每个文件大小限制为 128MB;如果您的 repo 中有任何文件大于或曾经大于此限制,则 repo 克隆将失败。

我们的 repo 中有一个 SQL 脚本,它曾经大小约为 200MB。

修复方法是在 TeamCity 中设置一个内部参数以增加此限制:

teamcity.git.stream.file.threshold.mb=256

于 2013-09-19T15:20:03.537 回答
4

使用 Build configuration Actions 菜单中的 Enforce Clean Checkout 选项。

TeamCity - 强制执行干净结帐

下次您运行构建时,它将重新创建本地 git 存储库并且应该恢复正常。

于 2016-06-12T16:11:46.297 回答