Skip to end of metadata
Go to start of metadata


This page contains descriptions of Subversion-specific fields and options available when setting up a VCS root.
Common VCS Root properties are described here.

You do not need Subversion client to be installed on the TeamCity server or agents. TeamCity bundles the Java implementation of SVN client (SVNKit).

SVN Connection Settings

Option

Description

URL

Specify the SVN URL that points to the project sources.

Username

Specify the SVN user name.

Password

Specify the SVN password.

 

 

Configuration Directory

You can specify an alternative subversion configuration directory, or use the default one (recommended). This setting also applies to agent-side checkout. TeamCity does not store authentication in SVN configuration directory, but can read settings stored there.

Use default configuration directoryCheck this option to make this the default configuration directory for the SVN connection.

Externals Support

Check one of the following options to control the SVN externals processing.

  • Full support (load changes and checkout) - when the option is selected, TeamCity will check out all configuration's sources (including the sources from the externals) and will gather and display information about externals' changes on the Changes tab.
  • Checkout, but ignore changes - when the option is selected, TeamCity will check out the sources from externals but any changes in externals' source files will not be gathered and displayed in the Changes tab. You can use this option if you have several SVN externals and do not want to get information about any changes made in the externals' source files.
  • Ignore externals - when the option is selected, TeamCity will ignore any configured "svn:externals" property, and thus TeamCity will not check for changes or check out any source file from the SVN externals.

     

    Subversion Repository UUID

    Icon

    TeamCity relies on Subversion repository UUID as an unique identifier of a repository. If you have 2 different repositories with the same UUID (due to repository copy) TeamCity may function incorrectly, for instance, wrong HEAD revision of an external repository can be checked out.

HTTPS Connections: Accept non-trusted SSL certificates

(Enable non-trusted SSL certificate in 10.0)

When this option is enabled, TeamCity is able to connect to SVN servers without properly signed SSL certificate.


Icon

Note that if you have anonymous access for some path within SVN,the entered username will never be used to authenticate when accessing any of its subfolders. Anonymous access will be used instead. This rule only applies for svn:// and http(s):// protocols; i.e. if you have a build configuration which uses a combination of this VCS Root + VCS Checkout Rules referencing a non-restricted path above the restricted one for another build configuration, changes under the restricted path will be ignored even if you specify correct username/password for the VCS Root itself.

SSH settings

Option

Description

Private Key File Path

Specify the full path to the file that contains the OpenSSH-formatted private key.

You can also specify an SSH key uploaded to TeamCity

Private Key File Password

Enter the password to the SSH private key.

SSH Port

Specify the port that SSH is using.

(info) Only the OpenSSH format is supported for the key. The key in a format unsupported by TeamCity has to be converted to the the OpenSSH format (e.g. a Putty private key  (*.ppk) can be converted using PuTTYgen.exe: see Conversions -> Export OpenSSH key). 

Checkout on agent settings

Option

Description

Working copy format

Select the format of the working copy. Available values for this option are 1.4 through 1.8 (current default)

This option defines the format version of Subversion files located in .svn directories, when the checkout on agent mode is used. The specified format is important in two cases:

  • If you run command-line svn commands on the files checked out by TeamCity. For example, if your working copy has version 1.5, you will not be able to use Subversion 1.4 binaries to work with it.
  • If you use new Subversion features; for example, file-based externals which were added in Subversion 1.6. Thus, unless you set the working copy format to 1.6, the file-based externals will not be available in the checkout on agent mode.

Revert before update

If the option is selected, then TeamCity always runs the "svn revert" command before updating sources; that is, it will revert all changes in versioned files located in the checkout directory. When the option is disabled and local modifications are detected during the update process, TeamCity runs the "svn revert" after the update.
TeamCity does not delete non-versioned files in the working directory during the revert. For deleting non-versioned files, consider using Swabra

Labeling settings

Option

Description

Labeling rules

Specify a newline-delimited set of rules that defines the structure of the repository. See the detailed format description for more details.

Authentication for SVN externals

TeamCity does not allow specifying SVN externals authentication parameters explicitly, in user interface. To authenticate on the SVN externals server, the following approaches are used:

  • authenticate using the same credentials (username/password) as for the main repository
  • authenticate without explicit username/password. In this case, the credentials should be already available to the svn process (usually, they stored in subversion configuration directory). So, this require setting correct "Configuration Directory" or "Default Config Directory" option under SVN Connection Settings

When TeamCity has to connect to a SVN external, it uses the following sequence:

  • if the SVN external URL has the same prefix as the main repository (there is a match > 20 characters), TeamCity tries the main repository credentials first, and in case of a failure tries to connect without the username/password (so they picked up from SVN configuration directory)
  • if the SVN external URL noticeably differs from the main repository, TeamCity tries to connect without the username/password, and in case of a failure, tries using the credentials from the main repository

Timeouts

Sometimes, the SVN checkout operation for remote SVN servers may fail with a error like svn: E175002: timed out waiting for server.
Usually this can happen due to network slowness or the SVN server overload.
The timeout values for the connection and for read operations can be configured.

Connection timeout

Connection timeout is applied when TeamCity creates a connection to the SVN server. The default timeout for this operation is 60 seconds, and can be specified via the TeamCity internal property teamcity.svn.connect.timeout, in seconds. The value of the property is set differently for server-side checkout and agent-side checkout:

Read timeout

The read timeout is used when a connection with the SVN server is established, and TeamCity is waiting for the data from the server. The value of the timeout depends on the SVN server access protocol.

Subversion server access via HTTP/HTTPS (both server/agent)

For HTTP read timeout TeamCity uses the http-timeout setting specified in the servers file in the Subversion configuration directory. On Win32 systems, this directory is typically located the Application Data area of the user's profile directory. On Unix/Mac, this directory is usually named $HOME/.subversion for the user account who runs the TeamCity server/agent.

If not specified, the default value for the timeout is 1 hour.

Subversion server access via svn:// or svn+ssh://

In this case the read timeout can be specified in seconds via the TeamCity internal property teamcity.svn.read.timeout. The default value is 30 minutes. The value of the property is set differently for server-side checkout and agent-side checkout:

Miscellaneous

Directories are not considered changed when they have the "svn:mergeinfo" Subversion property changes only. See details.



See also:

Administrator's Guide: Configuring VCS Settings | VCS Checkout Mode

2 Comments

  1. Some notes on svn+ssh configuration in the comments to the issue TW-7520.

  2. On a Mac, SVN support may be unable to access Mac keychain to obtain stored passwords from there.

    This takes place when you don't want to specify username/password in VCS Root and want to pick them up from the keychain. A workaround for the problem may be found in this comment: http://youtrack.jetbrains.com/issue/IDEA-77161#comment=27-331886

    In short, you should open keychain, under login bundle find the record for the corresponding repository, and allow access to all applications to this record (not only svn executable).