Subversion
这篇文章包含在设置 VCS 根时可用的 Subversion 特定字段和选项的描述。
常见的 VCS 根属性在 此处描述。
SVN 连接设置
选项 | 描述 |
---|---|
URL | 指定指向项目源代码的 SVN URL。 |
用户名 | 指定 SVN 用户名。 |
密码 | 指定 SVN 密码。 |
配置目录 | 您可以指定一个备用的 Subversion 配置目录,或使用默认的配置目录(推荐)。 这个设置也适用于代理端的签出。 TeamCity 不会在 SVN 配置目录中存储认证信息,但可以读取存储在此处的设置。 |
使用默认配置目录 | 启用此选项,将其设定为 SVN 连接的默认配置目录。 |
外部支持 | 选择以下选项之一来控制 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 外部的身份验证
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
。