【问题标题】:TeamCity hangs when updating sources from TFS从 TFS 更新源时 TeamCity 挂起
【发布时间】:2015-10-28 07:17:30
【问题描述】:

我已将 TeamCity 配置为使用我们的 TFS 存储库。我已经配置了 VCS Root 并使用了“测试连接”来确保设置都是正确的。当我运行构建时,它会进入“更新源”并挂在那里。这是构建日志。

[13:33:45]Collecting changes in 1 VCS root
[13:33:47]Clearing temporary directory: D:\TeamCity\buildAgent\temp\buildTmp
[13:33:47]Publishing internal artifacts
[13:33:48]Using vcs information from server. Reason: no revision information for build configuration "Build Development trunk" and checkout directory D:\TeamCity\buildAgent\work\db23c120e1319dcb on agent
[13:33:48]Clean build enabled: removing old files from D:\TeamCity\buildAgent\work\db23c120e1319dcb
[13:33:48]Checkout directory: D:\TeamCity\buildAgent\work\db23c120e1319dcb
[13:33:48]Updating sources: server side checkout (1m:21s)
[13:33:48][Updating sources] Will perform clean checkout
[13:33:48][Updating sources] Clean checkout reasons
[13:33:50][Updating sources] Building and caching clean patch for VCS root: Development trunk

结帐文件夹为空。有什么想法吗?

编辑

我编写了一个 Windows 批处理文件,它从 TFS 中获取代码,而不是使用 TeamCity 来执行此操作。从 Windows 命令提示符运行时,我的批处理文件运行完美,但从 TeamCity 运行时失败。我正在使用 TF.EXE 的完全限定路径,因为 TeamCity 似乎无法找到 TF.EXE(即使该路径已添加到 PATH 环境变量中)。

我的批处理文件在尝试获取源代码之前正确配置了 TFS 工作区。但还是失败了。

"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\tf.exe" workspaces /collection:http://code-srvr1:8080/tfs/DefaultCollection
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\tf.exe" workspaces /s:http://code-srvr1:8080/tfs/DefaultCollection
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\tf.exe" workfold //fails!!
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\tf.exe" get $/MSM\Development\Trunk /force /recursive //fails!!

我得到的错误是“无法确定工作区。您可以通过运行 'tf workspaces /collection:TeamProjectCollectionUrl' 来纠正这个问题”

但可以看出,我已经在批处理文件中指定了工作区。

任何想法为什么这些命令在 Windows 命令行中有效但在 TeamCity 中失败?如何让他们从 TeamCity 运行?

【问题讨论】:

  • VCS 根目录下的代码占用了多少磁盘空间?对于大型存储库,我看到 teamcity 需要时间来拉取代码,而在这样做的同时,它并不擅长报告进度。
  • @JamesReed 谢谢。我会让它在早上运行,看看会发生什么。仓库大小为 2GB。
  • 根据网络速度和磁盘 IO,我预计 2GB 的存储库可能需要一个小时左右的时间才能完成干净的构建。大约 30 分钟复制到构建服务器,然后 30 分钟复制到构建代理。您可以通过将构建设置为使用 agent side checkout 来加快速度。

标签: tfs teamcity


【解决方案1】:

我的解决方案是将我的 Team Foundation Client 从 2012 升级到 2013。2012 版本存在已知的超时问题,升级到 2013 已经解决了这些问题。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题(从 TFS 获取代码的 TeamCity 构建会在更新源阶段无限期卡住,从而阻止代理)。

    我的解决方案是确保 TeamCity Build Agent 在与 TeamCity Server 相同的服务帐户下运行。服务器将能够访问 TFS 项目并指示代理进行构建,但代理本身在未经授权时卡住了。

    当帐户不匹配问题得到修复后,一切都开始正常工作了。

    附带说明,当设置了参数“teamcity.tfs.mode=java”时,TeamCity 代理不会卡住,而是会失败并显示一条指导性错误消息(详细说明当前服务帐户名称),如果它在未经授权的帐户下运行。

    【讨论】:

      猜你喜欢
      • 2013-08-31
      • 2017-03-03
      • 1970-01-01
      • 2016-12-17
      • 2021-11-05
      • 1970-01-01
      • 2014-06-17
      • 2016-07-19
      • 1970-01-01
      相关资源
      最近更新 更多