VCS Root - best practice for branching

Hi, I'm having a play with Team City and was wondering if I'm approaching it correctly.

In TFS we have the following structure:

$/product
    Trunk
        project A
        project B
        project C
    Branch
        project A
        project B
        project C

Just focusing on "Trunk" for now - I'm working on the assumption that I should create a VCS root for "Trunk" and three projects underneath it (each project has its own MSBuild script).  The problem with this, is that its looking like any change to project A will kick off a build of projects B & C as well, since they share the same VCS root.  Projects B & C are huge and take a long time to build, so this isn't ideal.

I could create a separate VCS root for each project, but that seems to go against the idea of a root directory.

So am I just not getting something?  All I want is to specify is a single root per branch, with multiple projects hanging off of that.  A change to a single project should force a build in that project only.

Cheers,

Matt.

2 comments

Matthew,

You can create a VCS root for Trunk and in the build configurations add checkout rule to the root like:
+:project A=>.

This will effectively limit the sources checked out to files inside "project A" directory. The build will also display only the changes of project A and VCS trigger will start a build only on changes in project A.

0

That looks like what I want, cheers :-)
Will try it when I get some free time.  Right now I'm just playing with a view to replacing Cruise Control, which I'm currently in charge of maintaining.  Team City is looking SO much easier to look after.

0

Please sign in to leave a comment.