tags:

views:

32

answers:

1

In the TFS Branching Guide 2010 v1 (here) the ALM Rangers gives you 4 branch plans (scenarios) at the moment.

But in a related project, TFS Guide, also from the ALM Rangers (here), they offer a scenario "No Branch". This is good starting point, because having for example 2 branches (dev and main) will slow down the velocity and does introduce more complexity because of all the FI (forward integrate) and RI (reverse integrate) handling.

It looks for me that ALM Rangers do not sync both projects, because the branching guide 2010 v1 is not offering the "No Branch" plan anymore....

For our company we want to define a guidance that says to use a simple model at start but has the capability to grow when needed. So in fact, we want to start to use and develop directly on the Main branch only, and when QA really will becomes an issue we can drive off to a development branch and merge along the branches.

Is this a good practice to follow ?

A: 

How you branch is one of the most important decisions you can make with respect to source code configuration management. It needs to match your organization, your processes, and your teams.

What you decide early will be, to a great degree, what you wind up using forever, so don't take the decision lightly.

My personal recommendation (only because it works for us) is to use the MAIN and DEV branch approach. This provides the ability to perform a level of quality assurance (e.g. trial builds) prior to merging to the MAIN branch. The DEV branch becomes your primary integration branch, so forward integration isn't as much of a burden (since everyone is working off of the DEV branch).

Just to give you some reference, we literally spent between 3 and 6 months discussing our branching strategy, running it through use cases and trying to poke holes in it, before we decided which one to use.

Robaticus
I know it is very important to think about the branching strategy, but 3-6 months ? It looks more like a religious discussion... ;-)
Patrick Peters
@Patrick: We were migrating from an existing SCM system with a codebase of a few million lines of code, spread across 200 different systems, all supported by between 80-150 developers (depending on when it happened). We consolidated into 12 separate team projects. We *had* to get it right the first time, or we would have been totally up the creek. Sometimes it was religious, and the discussions were always passionate throughout my team.
Robaticus
@Robaticus: Respect!
Patrick Peters
Before I took over the job of managing the team that handles SCM, my boss used to say "respect the repository." Now I know what he means. :)
Robaticus