TeamCity On-Premises 2024.03 Help

Subversion

这篇文章包含在设置 VCS 根时可用的 Subversion 特定字段和选项的描述。

常见的 VCS 根属性在 此处描述。

SVN 连接设置

选项

描述

URL

指定指向项目源代码的 SVN URL。

用户名

指定 SVN 用户名。

密码

指定 SVN 密码。

配置目录

您可以指定一个备用的 Subversion 配置目录,或使用默认的配置目录(推荐)。 这个设置也适用于代理端的签出。 TeamCity 不会在 SVN 配置目录中存储认证信息,但可以读取存储在此处的设置。

使用默认配置目录

启用此选项,将其设定为 SVN 连接的默认配置目录。

外部支持

选择以下选项之一来控制 SVN 外部处理。

  • 全面支持(加载更改和检出):TeamCity 将检出所有配置的源(包括来自 external 的源)并收集和显示有关 external 更改的信息在 更改 标签上。 请注意,启用此选项可能会影响到 版本设置,因为它会引起 对修订版本添加时间戳

  • 检出,但忽略更改:TeamCity 将从外部检出源代码,但是外部源文件中的任何更改都不会被收集和显示在 更改 标签页上。 如果您有多个 SVN 外部文件并且不想获取有关在外部源文件中进行的任何更改的信息,您可以使用此选项。

  • 忽略外部:TeamCity 将忽略任何配置的 svn:externals 属性,因此 TeamCity 不会检查 SVN 外部的任何更改或检出任何源文件。

HTTPS 连接:接受非信任的 SSL 证书

如果启用,TeamCity 将能够连接到没有正确签名的 SSL 证书的 SVN 服务器。

SSH 设置

选项

描述

私钥文件路径

指定包含 OpenSSH 格式私钥的文件的完整路径。

您也可以指定一个已上传至 TeamCity 的 SSH 密钥

私钥文件密码

输入 SSH 私钥的密码。

SSH 端口

指定 SSH 使用的端口。

仅支持 OpenSSH 格式作为密钥。 必须将 TeamCity 不支持的格式的密钥转换为 OpenSSH 格式(例如,可以使用 PuTTYgen.exe 将 Putty 私钥( *.ppk )转换:见 转换 | 导出 OpenSSH 密钥)。

在代理设置中进行检出

选项

描述

工作副本格式

选择工作副本的格式。 此选项可用的值为 1.4 到 1.8(当前默认)。此选项定义了位于目录中的 Subversion 文件的格式版本,当使用 checkout on agent mode 时。 指定的格式在两种情况下非常重要:

  • 如果您在由 TeamCity 检出的文件上运行命令行 svn 命令。 例如,如果您的工作副本是 1.5 版本,您将无法使用 Subversion 1.4 二进制文件来处理它。

  • 如果您使用新的 Subversion 功能,例如,在 Subversion 1.6 中添加的基于文件的 externals 。 因此,除非您将工作副本格式设置为 1.6,否则在 checkout on agent 模式下,文件基础的外部链接将无法使用。

更新前还原

如果选择了此选项,那么 TeamCity 在更新源代码之前总是会运行 svn revert 命令;也就是说,它将撤销位于签出目录中的已版本化文件的所有更改。 当该选项被禁用且在更新过程中检测到本地修改时,TeamCity会在更新后运行 svn revert
TeamCity在还原期间不会删除工作目录中的非版本化文件。 对于删除非版本化文件,请考虑使用 Swabra

标签设置

选项

描述

标签规则

指定一个由换行符分隔的规则集,定义仓库的结构。 请查看 详细格式描述 以获取更多详细信息。

SVN 外部的身份验证

TeamCity 不允许在用户界面中明确指定 SVN 外部认证参数。 为了在 SVN externals 服务器上进行认证,以下方法被使用:

  • 使用与主存储库相同的凭据(用户名/密码)进行身份验证

  • 无需明确用户名/密码进行身份验证。 在这种情况下,凭证应该已经对 svn 进程可用(通常,它们存储在 subversion 配置目录中)。 所以,这需要在 SVN 连接设置 下正确设置“配置目录”或“默认配置目录”选项。

当 TeamCity 需要连接到 SVN 外部时,它使用以下序列:

  • 如果 SVN 外部 URL 的前缀与主仓库相同(匹配字符 > 20个),TeamCity 首先尝试使用主仓库的凭据,如果失败,它将在没有用户名/密码的情况下尝试连接(因此,它们从 SVN 配置目录中获取)。

  • 如果 SVN 外部 URL 显著不同于主仓库,TeamCity 将尝试不使用用户名/密码进行连接,并在失败的情况下,尝试使用来自主仓库的凭据进行连接。

超时

有时,对远程 SVN 服务器进行 SVN 检出操作可能会失败,并出现像 svn: E175002: 等待服务器超时 这样的错误。 通常,这可能是由于网络延迟或 SVN 服务器过载而发生。可以配置连接和读取操作的超时值。

连接超时

当 TeamCity 建立与 SVN 服务器的连接时,会应用连接超时。 此操作的默认超时时间为 60 秒,可通过 teamcity.svn.connect.timeout 属性以秒为单位进行设定。

属性值在服务器端检出和代理端检出时设置不同:

读取超时

读取超时是在与SVN服务器建立连接时使用的,TeamCity正在等待服务器的数据。 超时的值取决于 SVN 服务器的访问协议。

通过 HTTP / HTTPS 访问 Subversion 服务器 (服务器 / 代理均可)

对于 HTTP 读取超时,TeamCity 使用在 Subversion 配置目录的 服务器 文件中指定的 http-timeout 设置。 在 Win32 系统上,此目录通常位于用户配置文件目录的 Application Data 区域。 在 Unix / Mac 上,该目录通常被命名为 $HOME/.subversion ,用于运行 TeamCity 服务器 / 代理的用户帐户。

如果未指定,超时的默认值为1小时。

通过 svn:// 或 svn+ssh:// 访问 Subversion 服务器

在这种情况下,可以通过 TeamCity teamcity.svn.read.timeout 内部属性以秒为单位指定读取超时。 默认值为30分钟。

该属性的值对于服务器端检出和代理端检出设定方式不同:

忽略的更改

TeamCity 忽略了 svn:mergeinfo 属性中的更改,并且如果在给定提交中只修改了这些属性,则不会将目录 更改

您可以通过 TeamCity 的 内部属性 teamcity.svn.ignorable.properties 更改被忽略的 SVN 属性的列表。 这个属性的值是一个以逗号分隔的 SVN 属性列表;默认值是 svn:mergeinfo

最后修改日期: 16日 7月 2024年