A Branching/Merging Strategy for Parallel Software Development

In many software configuration management (SCM) systems, branching and merging are fundamental operations, supporting isolation and integration (respectively). Unfortunately, the obvious branching and merging strategies have unpleasant consequences. This paper presents a less obvious branching and merging strategy, for parallel software development, which does not suffer these consequences. In particular, it presents a way of updating an active branch from a new baseline. The strategy can be described as ``merging at a label.'' It has been successful at managing unnecessary branch proliferation and change isolation in an industrial SCM environment.