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 触发器
如果你希望每次有人签入代码时都运行生成,请在“触发器”选项卡上选择“启用持续集成”以启用此触发器。
批处理更改
如果许多团队成员经常上传更改,并且你希望减少运行的生成数量,请选中此复选框。 如果选择此选项,则当生成正在运行时,系统会等待生成完成,然后将尚未生成的所有更改的另一个生成排成队列。
可以批处理更改并将其一起生成。
路径筛选器
选择要包含和排除的版本控制路径。 在大多数情况下,应确保这些筛选器与 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 生成。
需要了解的一些其他事项
- 请确保触发器中包含的文件夹也包含在工作区映射中。
- 可以在 Microsoft托管代理 或 自承载代理上运行封闭生成。
常见问题
运行管道时出现以下错误:
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。