生成 TFVC 存储库

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

重要

仅经典管道支持 TFVC,不支持 YAML。

选择要生成的存储库

编辑使用 TFVC 存储库的管道时,可使用以下选项。

  • 干净
  • 指定本地路径
  • 标记源

存储库名称

TFVC 存储库的名称。

映射(工作区)

包含类型值 Map 生成管道所需的文件夹。 如果映射文件夹的子文件夹包含生成管道不需要的文件,请将其映射到类型值为 Cloak

请确保 映射 包含生成管道所需的文件的所有文件夹。 例如,如果添加另一个项目,可能需要向工作区添加另一个映射。

Cloak 不需要的文件夹。 默认情况下,项目的根文件夹在工作区中映射。 此配置会导致生成代理下载项目版本控制文件夹中的所有文件。 如果此文件夹包含大量数据,则生成可能会浪费生成系统资源,并通过下载不需要的大量数据来降低生成管道的速度。

删除项目时,查找可从工作区中删除的映射。

如果这是 CI 生成,则在大多数情况下,应确保这些映射与 “触发器”选项卡上的 CI 触发器的筛选器设置匹配

有关如何优化 TFVC 工作区的详细信息,请参阅 优化工作区

清理代理上的本地存储库

在生成运行之前,可以对自托管代理的工作目录执行不同形式的清理。

一般情况下,为了提高自托管代理的性能,请不要清理存储库。 在这种情况下,若要获得最佳性能,请确保同时以增量方式生成,方法是禁用用于生成的任务或工具的任何“清理”选项。

如果你确实需要清理存储库(例如,为了避免上次生成残留的文件造成问题),请使用以下选项。

注释

如果使用 Microsoft托管代理,则清理不相关,因为每次在这种情况下都会收到新代理。

如果要清理存储库,请选择 true,然后选择以下选项之一:

  • :生成管道执行撤消任何更改,并将当前工作区 $(Build.SourcesDirectory)下。

  • 源和输出目录:与上述“源”选项相同的操作,加上:删除再重新创建 $(Build.BinariesDirectory)

  • 源目录:删除再重新创建 $(Build.SourcesDirectory)

  • 所有生成目录:删除再重新创建 $(Agent.BuildDirectory)

CI 触发器

如果你希望每次有人签入代码时都运行生成,请在“触发器”选项卡上选择“启用持续集成”以启用此触发器。

CI 触发器。

批处理更改

如果许多团队成员经常上传更改,并且你希望减少运行的生成数量,请选中此复选框。 如果选择此选项,则当生成正在运行时,系统会等待生成完成,然后将尚未生成的所有更改的另一个生成排成队列。

可以批处理更改并将其一起生成。

路径筛选器

选择要包含和排除的版本控制路径。 在大多数情况下,应确保这些筛选器与 TFVC 映射一致。 可以使用路径筛选器来减少要触发生成的文件集。

提示:

  • 始终相对于工作区的根目录指定路径。
  • 如果未设置路径筛选器,则默认情况下会隐式包含工作区的根文件夹。
  • 如果排除某个路径,则不能同时包含该路径,除非将其限定为更深一级的文件夹。 例如,如果排除 /tools,则可以包含 /tools/trigger-runs-on-these
  • 路径筛选器的顺序无关紧要。

封闭式签入

可以使用封闭签入来防止中断性变更。

默认情况下,已选择“使用筛选器的工作区映射”。 每当在源映射中指定的路径下签入更改时,就会触发生成。

否则,可以清除此复选框并指定触发器中的路径。

它如何影响开发人员

当开发人员尝试签入时,系统会提示他们生成更改。

门式签入提示

然后,系统会创建一个货架集并生成它。

注释

如果收到错误(如 The shelveset _Build_95;Build\6bc8a077-3f27-4936-82e6-415fbd53ba07 could not be found for check-in),请检查 将作业授权范围限制为当前项目以用于非发布管道 设置,并确保它未启用。

有关封闭签入体验的详细信息,请参阅 签入到受封闭签入生成管道控制的文件夹

用于运行 CI 生成的选项

默认情况下,CI 生成在封闭签入过程完成后不会运行,并且会签入更改。

但是,如果 希望 CI 内部版本在封闭签入后运行,请选中 运行 CI 触发器以 复选框提交更改。 执行此作时,生成管道不会向变更集说明添加 ***NO_CI***。 因此,运行受签入影响的 CI 生成。

需要了解的一些其他事项

常见问题

运行管道时出现以下错误:

The shelveset <xyz> could not be found for check-in

  • 作业授权范围 是否设置为 集合? TFVC 存储库通常分布在集合中的项目中。 你可能正在读取或写入仅当范围是整个集合时才能访问的文件夹。 可以在组织设置或项目设置的“管道”选项卡下设置此设置。

运行管道时出现以下错误:

The underlying connection was closed: An unexpected error occurred on a receive. ##[error]Exit code 100 returned from process: file name 'tf', arguments 'vc workspace /new /___location:local /permission:Public

  • 这通常是在服务遇到技术问题时导致的间歇性错误。 请重新运行管道。

什么是烧焦?

Scorch 是一种 TFVC 电源工具,可确保服务器上的源代码管理与本地磁盘相同。 请参阅 Microsoft Visual Studio Team Foundation Server 2015 Power Tools