One of my readers asked me if I could provide a bit more insight on branching. I think the best thing I can do here is summarize a few tips and then point to some useful resources.
- Don't branch unless you need to. You can always label a release build and branch later. Use branching for isolation while doing parallel development.
- Know the common branching patterns. These include branch by feature, branch by release, and branch by team.
- Use a common folder structure for your branches. While your branching can be organic and evolve over time, a thoughtful folder structure can help.
Here's an example starting point.
In this case, Main is your main source tree and project assets. Development is a root level folder for isolating your features or teams (branched off your Source folder in Main).
- Video: Branching 101 with Doug Neumann - Visual Studio Team Foundation Server. Doug does a great whiteboard walkthrough of branching/merging.
- patterns & practices Source Control Practices. See the "Branch / Label / Merge" section.
- patterns & practices Source Control Q & A. See the "Branch / Label / Merge" section.