【问题标题】:How to re-enable a commit into TFS?如何重新启用对 TFS 的提交?
【发布时间】:2023-03-15 08:06:01
【问题描述】:

我的公司使用 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/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 服务器创建的(带有使用 TEE-CLC 的 TFS 插件)。提到的文件是在运行集成测试的构建步骤中创建的,不受版本控制。

工作区设置为使用 TFS 插件选项“使用更新”。 引用docs

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

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

【问题讨论】:

    标签: tfs jenkins azure-devops git-tf


    【解决方案1】:

    二进制文件仅由 TFS 签出,因为无法合并对文件所做的任何更改。看起来您已经在您的名字的工作区中签出了此文件。您需要在另一个工作区中撤消该签出(或至少撤消锁定)。您可以从源代码管理资源管理器或命令行执行此操作。

    从标准命令行发出

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

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

    使用构建帐户时,将其配置为执行非排他性签出并确保在构建失败时(在门控签入的情况下)释放锁定的文件可能更安全。这些类型的情况经常发生在构建 latest+shelveset 的 Gated Checkins 上,但由于某种原因失败,导致搁置集中的文件被签出。如果是二进制文件,这些签出将是排他性的。

    您还可以将 TFS 配置为从不以独占方式检出二进制文件。在 Visual Studio 中,您可以在 Team>Team Foundation Server Settings>Source Control File Types 下找到这些设置。

    【讨论】:

    • 显然,在 git-tf 提交期间触发的 CI 构建是造成该错误的原因。那可能吗?我在 git-tf@Codeplex 上问过这个问题。
    • 是的,这是可能的。
    • 在 git-tf 开发人员的提示下,我在 git-tf 签入期间暂时禁用了 CI 服务器。那行得通。我喜欢您的回答,因为它揭示了有关只读和独占结帐的详细信息以及控制此行为的方法。但这并没有帮助我解决我的问题。现在在 SO 上做什么?
    • 只需将您自己的答案添加到问题中并接受,然后将我的答案留作参考。您可以随时要求所有同事为其 +1 ;)。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      相关资源
      最近更新 更多