Version Control tools are in part used for co-ordinating a groups of developers and in part for being a Configuration Management Data Base giving the history for how a product has been developed.
We do not have many different mechanisms in version control tools to handle these situations - basically we have branching and merging. So it becomes important that these two mechanisms can be used in different ways to support different situations.
In this micro-tutorial we will go through different stragegies for branching and merging and look at what advantages and drawbacks each strategy has so we can select strategies that are well suited for specific contexts.