我的公司使用 Visual Studio Team Services(以前称为 Visual Studio Online,Team Foundation Service)。作为一名开发人员,我使用 git-tf 来完成我的 Git 工作。为了应用持续集成,我让 Jenkins 运行,它使用使用Team Explorer Everywhere CLC的插件从 Team Services 获取代码。
最近在提交到 Team Services 期间,出现了以下消息:
gottfried@lubuntu-virtual-machine:~/git_repo$ git-tf checkin
签入 $/fireAnalytics: 12%, commit a0bfea1
git-tf: 由于以下错误,未能挂起对 TFS 的更改。请修复错误并重试签入。 TF10151:无法锁定项目 $/fireAnalytics/packages/fdssuite/src/fdssuite/tests/couch_devices.png 以进行签出。项目 $/fireAnalytics/packages/fdssuite/src/fdssuite/tests/couch_devices.png 由 Sascha Gottfried 在工作区 Hudson-hhpberlin fireanalytics-MASTER 中签出。
提到的工作区(workspace Hudson-hhpberlin fireanalytics-MASTER)是由 Jenkins CI 服务器创建的(带有 TFS 插件使用 TEE-CLC)。提到的文件是在运行集成测试的构建步骤期间创建的,并且不受版本控制。
工作区设置为使用 TFS 插件选项“使用更新”。引用自文档
如果选中此选项,则在构建结束时不会删除工作区和工作文件夹。这使得构建速度更快,但工件仍然存在于构建之间。如果不勾选,插件会在构建开始时创建一个工作区并映射到本地文件夹,然后在构建结束时删除工作区。
我的 CI 设置如何影响 TFS 签入以及如何解决这种情况?