Interaction with version control (VCS) servers is one of the resource-heavy parts of TeamCity. Until TeamCity 8.0, VCS operations could only be performed by TeamCity server itself. In version 8.0, we introduced an option to execute VCS operations in a separate VCS worker service, which can run on a separate machine (or even use several VCS workers on multiple machines). For example, you can route all Git VCS traffic through one VCS worker and all Subversion traffic through another. Furthermore, you can run the TeamCity server on Linux and still be able to use TFS by running a VCS worker on a Windows machine. With large installations, VCS worker(s) installed on separate machines should noticeably decrease TeamCity server load.
By default, VCS workers are disabled and TeamCity behaves as usual, i.e. performs all VCS operations from the main server process.
VCS worker is now provided with embedded support of Team Foundation Server, Perforce, Subversion, Git, and Mercurial.
Administration | VCS workerpage on the TeamCity server and download
vcs-worker.zipon the target machine
JAVA_HOMEenvironment variable to point at the installed Java JVM 1.6+
<TeamCity data directory>/config/vcs-worker.properties.dist
worker.1.urlline (remove #) and specify the worker URL, e.g.
<vcs-worker>/conf/vcs-worker.properties.distfor more options (you can change the port, some paths, HTTP context path)
<TeamCity data directory>/config/vcs-worker.propertiesand add
worker.2.vcsTypessettings to assign different VCS types to different workers
All connected workers are listed under VCS Worker tab in the "Administration" section (