Branching (software)

From Wikipedia, the free encyclopedia

For other uses, see Branching.

Branching, in revision control and software configuration management, is the duplication of an object under revision control (usually a source code file) in such a way that the newly created object has initially the same contents as the version branched off from, and (more importantly) development (creation of new versions) can happen parallelly along both branches.

Branching also generally implies merging, which is the process of copying the differences accrued to an object on another branch back to the parent branch (usually called trunk).

Branches are created for various reasons. These are covered in depth in the paper "Streamed Lines: Branching Patterns for Parallel Software Development" by Brad Appleton, Stephen Berczuk, Ralph Cabrera, and Robert Orenstein.

In other languages