配置 VCS 根目录
VCS root(VCS 根) 是 TeamCity 与 VCS 存储库通信的基石。 此重要元素定义了与 VCS 提供程序 的连接,以执行广泛的操作:存储库检出、代码源标记、将构建状态回传到 VCS 等。
VCS 根存储以下信息:
TeamCity 用于拉取和推送远程文件的获取和推送 URL。
分支信息:TeamCity 应跟踪的存储库分支列表以及哪个分支是默认(主)分支。
身份验证设置:TeamCity 用于访问存储库的凭据。
检出设置:指定如何存储远程文件以及是否应与主存储库一起检出子模块。
自定义更改轮询设置,允许您覆盖默认的 60 秒间隔。
与 VCS 根相关的部分在项目和配置设置中均可用。

然而,配置从不拥有根。 您可以将 VCS 根“附加”到配置,但根始终存储在(由)项目中。 此技术带来了以下结果:
一个 VCS 根可以附加到多个配置,这意味着多个构建配置可以使用相同的身份验证和检出设置访问同一个存储库。
单个配置可以附加多个 VCS 根,这使您能够在一个配置中使用不同的存储库。
编辑 VCS 根会影响所有使用它的配置。 在修改 VCS 根设置时,您可以选择复制此根并将更新的设置存储在此新克隆中,同时保持原始根不变。 这使您能够自定义一个构建配置,而不影响共享此根的其他配置。
尽管 VCS 根是任何与远程存储库交互的构建配置的基本部分,但在许多场景中,TeamCity 会自动生成根,而无需您为每个新构建配置手动创建它们。 有关示例,请参见 本教程。
常见 VCS 根属性
- VCS 类型
TeamCity 支持的版本控制系统类型。 例如,Git、Perforce、Subversion 等。
- VCS 根名称
项目中所有 VCS 根中 VCS 根的唯一名称。 这是 TeamCity 界面中显示的公共名称(例如,在构建配置的“附加 VCS 根”菜单中)。
- VCS 根 ID
在系统中所有 VCS 根中,VCS 根的独特 ID。 默认情况下,根 ID 由其父项目和根本身的截断名称组成,并用下划线分隔。 例如,
MyProject_HttpsGitHubComJohndoeMyrepoRefsHeadsMain。 更改根名称时,您可以点击 重新生成 ID 链接来更新此值。根 ID 用于构建参数,允许您读取根属性,例如
vcsroot.ProjectName_RootName.branch和vcsroot.ProjectName_RootName.url。 此外,ID 还可以用于 REST API。- 存储库 URL
VCS 存储库的 URL。 支持 不同格式的URL,如:
http(s)://、svn://、ssh://git@、git://以及其他,同时也支持Maven格式的URL。如果项目(或其父项目)具有 与 VCS 提供程序的连接 ,TeamCity 会在此字段旁显示相应的 VCS 图标。 如果您对同一提供程序有多个连接(例如,GitHub OAuth 和 GitHub App),将鼠标悬停在图标上以查看连接名称。

点击图标以查看 TeamCity 使用此连接检测到的存储库列表。 由于连接存储了所有必要的存储库访问数据,选择存储库不仅会填充 存储库 URL ,还会填充身份验证设置(用户名 和 密码 / 访问令牌)。
- 最小轮询间隔
指定 TeamCity 对 VCS 存储库进行 VCS 更改的轮询频率。 默认情况下,使用全局预定义的服务器设置,您可以在 管理 | 全局设置 页面上修改该设置。 在每个 VCS 根的基础上,间隔时间在上次轮询结束后立即开始。 在这里,您可以为当前的 VCS 根目录指定自定义间隔。
如果 TeamCity 检测到使用了一个 VCS commit hook 来触发检查更改,那么这个间隔会自动增加至预设的值(4 小时)。 如果定期检查发现了通过提交钩子未检测到的更改,轮询间隔将被重置为指定的最小值。
- 属于项目
显示拥有此 VCS 根的项目。 您可以将 VCS 根移动到父项目,使其对新所有者及其子项目中的所有构建配置可用。
参阅本节内的页面,获取 VCS 特定的配置详细信息。