VCS 签出模式
在构建配置中的 版本控制设置 页面允许配置如何从 VCS 中检索项目源代码:您可以 附加一个 VCS 根 并配置检出选项。
VCS Checkout mode 是一个影响项目源代码如何到达 agent 的设置。 此模式仅影响源代码的签出。 当前的修订和更改数据检索逻辑由 TeamCity 服务器执行,因此 TeamCity 服务器需要在任何模式下访问 VCS 服务器。
根据使用的版本控制,代理可能需要在 PATH
上安装和可用的命令行客户端(例如,Perforce,Git,Mercurial)。
签出模式在构建配置的 版本控制设置 页面上进行配置,在 签出设置 部分(高级设置)。
TeamCity 有以下的 VCS 检出模式:
签出模式 | 描述 |
---|---|
喜欢在 agent 上检出文件 | 这是新创建的构建配置的默认设置。 在升级过程中,现有构建配置的检出模式设置将被保留。 启用此设置后,如果可能,TeamCity 将使用代理端签出(请参见下方的 “始终在代理上签出文件”模式)。 如果无法进行代理端检出,TeamCity 将显示相应的 健康报告项,并将使用服务器端检出(参见下面的 "始终在服务器上检出文件" 模式)。 在以下情况下,TeamCity 将回退到服务器端检出:
|
始终在服务器上检出文件 | TeamCity 服务器将在每次构建之前,将 源码 导出并传递给代理。 由于源文件是被导出而非检出的,因此代理的文件系统中不会存储任何管理数据,且无法从代理执行版本控制操作(如检入、标签或更新)。 TeamCity 通过 缓存源代码 以优化与 VCS 服务器的通信,并且只从 VCS 服务器检索必要的更改。 除非执行 clean checkout ,否则服务器会向代理发送增量补丁,仅更新给定签出目录中自上次在代理上构建以来更改的文件。 |
始终在代理上检出文件 | 构建代理将在构建之前 签出源代码。 代理端签出可以释放更多服务器资源,并能够访问特定版本控制的目录( VCS 客户端软件必须安装在代理上(适用于 Perforce,Mercurial,Git)。 |
请不要自动检出文件 | TeamCity 将不会自动检出任何源文件,但是 默认构建检出目录 仍然会被创建,以便您可以使用它通过构建脚本来检出源文件。 请注意,只有在对由 构建检出目录将不会自动清理,除非已配置目录过期期限。 |