VCS worker is a separate service responsible for communication with VCS repositories. The service was extracted from TeamCity core and can now be installed on any machine on your in the network. TeamCity server can be configured to use one or more VCS workers, in which case some or all VCS specific tasks will be routed to appropriate workers. For example, it is possible to route all Git specific requests to one worker, and Subversion requests to another.
VCS worker is disabled by default and TeamCity behaves as usual, i.e. performs all VCS operations from the main server process.With large setups VCS worker(s) installed on separate machine should decrease TeamCity server load significantly. Please refer to our documentation for instructions on configuring TeamCity in conjunction with VCS worker
There is a number of situations when VCS worker can be useful:
- it can improve responsiveness of the TeamCity server, as VCS specific operations sometime require CPU power and significant amounts of memory. If these operations are moved to separate process, chances are main TeamCity server will work faster.
- VCS worker can improve stability of the server. Any bugs in VCS specific component will affect VCS worker but won't affect server. If there is a memory or resources leak, it can cause VCS worker failure, but server at least will be able to show user interface, access builds, changes, etc.
- it should be easier to discover CPU and memory issues if they are related to VCS operations. Without worker if some VCS plugin ate a lot of resources it can be hard to find it, because plugin works in the same Java process as server and server usually does a lot of work. With worker this should be easier.
In general this component can be useful for large setups as it gives server administrators more flexibility for tasks like server monitoring and scalability.
The feature is in experimental state and can be left in this state even in version 8.0. So far we do not guarantee compatibility between server and worker, if you choose to install worker, most likely you'll need to upgrade it each time when you upgrade server. Also there is no auto-upgrade procedure yet.
If you want to experiment with this feature please refer to our documentation for VCS worker installation instructions: http://confluence.jetbrains.com/display/TCD8/VCS+worker+installation.
Note that the feature is still experimental and is subject to change. For now, we do not preserve backward compatibility, which means that new server versions might not be compatible with earlier versions of VCS worker.
Ability to create sub-projects, move project under another project, inherit parameters.