Thursday, September 11, 2008

TFS Branching and Merging draft Guideline


Branch and Merge is a core concept in TFS to facilate Source Control and release
management. There are various approach to these topics. But here are brain-dump
while encountering practical issues using TFS ( Team Fundation server).

(1) Agile Development Directory Structure representing Team, products, solutions,
major branch

Trading System
CRD
XIP
GMO.XIP
Branches
2008
2009
Trunk


(2) Each branch represent a weekly release version. and Trunk should not be released.
This will allows us to support different usage of XIP solution for different
business cases and still support common core.
If CMMI are used, then the structure could be based on version number not related to Dates

(3) For non-release related feature (eg. new helper function or bug fixes), a
feature branches should be used for the changes. In other words, Trunk can only be
changed through merge back from branches.

(4) Branching should be off Tip Revision (Latest Version), rather than a label since TFS needs
to duplicated files on branching and we have to use duplicated directory structure, which in
itself already acts like Label.