Help with VCS settings and projects

I have a product that is composed of several modules, each modules being a fully fledged distributed application with several sub components.
These modules are organised in TeamCity as sub-projects of the main "product" project, all in all there are over 100 build configurations for the entire project, and this organisation works very well.

What I am not sure about is how to organise VCS. Currently we tend to have a VCS defined for each module, but I am wondering if it will be better if we had only one VCS defined for all and use Checkout Rules to only include folders with the sources need for that module.


Is TeamCity more efficient at managing one or multiple VCSs? As we make heavy use of snapt dependencies, is one approach preferebale over the other?
Does it matter if these are configured to be Server Side or Agent Side checkouts?

4 comments
Comment actions Permalink

Hi Alex,

Yes, it is recommended to have a small number of VCS roots (pointing to the root of the repository) and define what is checked out by a specific build configuration via checkout rules.
It works for both agent- and server-side checkout, because in both cases server polls VCS repositories for VCS changes. The load on the server depends on number of VCS roots as well as checking for changes interval for the VCS roots.

0
Comment actions Permalink

Thanks Alina.

Can you please elaborate a bit further on this reccomendation? Is it so the server is less under load are there other benefits?

0
Comment actions Permalink

Yes, the main point to have as less VCS roots as possible - is server load. Also it is easier for TeamCity server administrator to configure such setup. For example if you need to change a VCS root password you can change it in one place.

0
Comment actions Permalink

Thank you Alina, this helps.

0

Please sign in to leave a comment.