Vendors of configuration management applications provide tools to enable one to create and merge branches. Whilst these tools can be used to facilitate parallel development one must avoid their use for this purpose for the following reasons:
· Branching using CM tools is very complicated and most tools to do not provide adequate mechanisms to prevent versions from one branch being added to another. Therefore inappropriate use branching will result in release cross over.
· Compare tools enable a developer to compare two or more source files to determine what changes need to be applied to reconcile the differences between the two files. These tools have major limitations when comparing binary objects and are cumbersome for comparing large files with many changes. These tools should be used as an aid to developers rather than tools to manage parallel development.
· Merge tools enable a developer to merge two branches to produce a new version that contains the consolidated set of changes from the two branches. The developer can select which lines to merge and which to ignore. Like compare tools these should be used as an aid to developers rather than tools to manage parallel development.