生成 TFVC 存储库

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

重要

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

选择要生成的存储库

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

  • Clean
  • 指定本地路径
  • 标记源

存储库名称

TFVC 存储库的名称。

映射(工作区)

仅在“映射”类型值中包含生成管道所需的文件夹。 如果映射文件夹的子文件夹包含生成管道不需要的文件,请将该子文件夹映射到“掩蔽”类型值。

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

掩蔽不需要的文件夹。 默认情况下,项目的根文件夹将映射到工作区中。 此配置会导致生成代理下载项目的版本控制文件夹中的所有文件。 如果此文件夹包含大量数据,则生成会下载大量不需要的数据,从而浪费生成系统资源并减慢你的生成管道。

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

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

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

清理代理上的本地存储库

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

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

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

注意

如果使用 Microsoft 托管的代理,则无需清洁,因为在这种情况下,每次都会获得一个新代理。

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

  • 源:生成管道撤消任何更改,并 scorch $(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?

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