如何重新启用TFS提交?

时间:2014-01-17 14:01:19

标签: tfs jenkins azure-devops git-tf

我的公司使用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%,提交a0bfea1
  git-tf:由于以下错误导致未能将更改挂起到TFS。   请修复错误并重试签入。   TF10151:无法锁定项目   $ / fireAnalytics /包/ fdssuite / src目录/ fdssuite /测试/ couch_devices.png   退房。该项目   $ / fireAnalytics /包/ fdssuite / src目录/ fdssuite /测试/ couch_devices.png   由Sascha Gottfried在Hudson-hhpberlin工作室检查   fireanalytics-MASTER。

提到的工作区(工作区Hudson-hhpberlin fireanalytics-MASTER )由Jenkins CI服务器创建(使用TEE-CLC的TFS插件)。提到的文件是在构建步骤期间创建的,该步骤运行集成测试并且不受版本控制。

工作区设置为使用TFS插件选项'use update'。 引自docs

  

如果选中此选项,则工作区和工作文件夹不会   在构建结束时删除。这使得构建更快,但是   构件之间仍存在工件。如果未选中,插件将   创建一个工作区并将其映射到开头的本地文件夹   构建,然后在构建结束时删除工作区。

我的CI设置如何影响TFS签入以及如何解决这种情况?

2 个答案:

答案 0 :(得分:2)

二进制文件由TFS专门检出,因为无法合并对文件所做的任何更改。看起来你已经在你名字的工作区中检出了这个文件。您需要撤消其他工作区中的结帐(或至少撤消锁定)。您可以从Source Control Explorer或命令行执行此操作。

从标准命令行发出

  

tf undo /workspace:"Hudson-hhpberlin fireanalytics-MASTER";"Sascha Gottfried" "$/fireAnalytics/packages/fdssuite/src/fdssuite/tests/couch_devices.png"

我怀疑CLC命令行非常相似(但我目前无法检查)。

使用构建帐户时,将其配置为执行非独占签出可能更安全,并确保在构建失败时(在Gated Checkin的情况下)锁定文件被释放。这些类型的情况经常发生在构建最新+ shelveset的Gated Checkins上,但由于某种原因失败,保留了shelveset中的文件。如果是二进制文件,那么这些结账将是独占的。

您还可以将TFS配置为永远不会独占签出二进制文件。在Visual Studio中,您可以在 Team > Team Foundation Server设置> 源代码控制文件类型下找到这些设置。

答案 1 :(得分:0)

显然Jenkins CI服务器在我的TFS提交期间触发了新的构建,因为Jenkins作业设置为每分钟轮询TFS repo。我暂时关闭了Jenkins CI并且TFS提交再次成功。