Branching (version control)

branchbranchesbranchingbrancheddevelopment branchBranching (revision control)Branching codecode branchescode branchingdevelopment tree
Branching, in version control and software configuration management, is the duplication of an object under version control (such as a source code file or a directory tree) so that modifications can occur in parallel along multiple branches.wikipedia
67 Related Articles

Merge (version control)

mergemergingmerged
Branching also generally implies the ability to later merge or integrate changes back onto the parent branch.
Most often, it is necessary when a file is modified on two independent branches and subsequently merged.

Trunk (software)

trunkmainlinedevelopment trunk
Child branches are branches that have a parent; a branch without a parent is referred to as the trunk or the mainline.
In the field of software development, trunk refers to the unnamed branch (version) of a file tree under revision control.

Version control

revision controlversion control systemsource control
Branching, in version control and software configuration management, is the duplication of an object under version control (such as a source code file or a directory tree) so that modifications can occur in parallel along multiple branches. In some distributed revision control systems, such as Darcs, there is no distinction made between repositories and branches; in these systems, fetching a copy of a repository is equivalent to branching.
It may also be necessary to develop two versions of the software concurrently: for instance, where one version has bugs fixed, but no new features (branch), while the other version is where new features are worked on (trunk).

Fork (software development)

forkforkedforks
A branch not intended to be merged (e.g. because it has been relicensed under an incompatible license by a third party, or it attempts to serve a different purpose) is usually called a fork.
The term often implies not merely a development branch, but also a split in the developer community, a form of schism.

Distributed version control

distributed revision controlpull requestDistributed
In distributed revision control, the entire repository, with branches, may be copied and worked on further.
This enables automatic management branching and merging, speeds up of most operations (except pushing and pulling), improves the ability to work offline, and does not rely on a single location for backups.

Software configuration management

SCMconfiguration managementsoftware change and configuration management
Branching, in version control and software configuration management, is the duplication of an object under version control (such as a source code file or a directory tree) so that modifications can occur in parallel along multiple branches.

Source code

codesourcesource file
Branching, in version control and software configuration management, is the duplication of an object under version control (such as a source code file or a directory tree) so that modifications can occur in parallel along multiple branches.

Directory (computing)

directorydirectoriesfolder
Branching, in version control and software configuration management, is the duplication of an object under version control (such as a source code file or a directory tree) so that modifications can occur in parallel along multiple branches.

Darcs

In some distributed revision control systems, such as Darcs, there is no distinction made between repositories and branches; in these systems, fetching a copy of a repository is equivalent to branching.

Repository (version control)

repositorysource code repositoryrepositories
In some distributed revision control systems, such as Darcs, there is no distinction made between repositories and branches; in these systems, fetching a copy of a repository is equivalent to branching.

Software relicensing

relicensedrelicensere-license
A branch not intended to be merged (e.g. because it has been relicensed under an incompatible license by a third party, or it attempts to serve a different purpose) is usually called a fork.

Software quality assurance

quality assuranceQAQA director
Large projects require many roles to be filled, including developers, build managers, and quality assurance personnel.

Patch (computing)

patchpatchespatched
Branches allow contributors to isolate changes without destabilizing the codebase, for example, fixes for bugs, new features, and versions integration.

Software feature

feature-richfeaturefeatures
Branches allow contributors to isolate changes without destabilizing the codebase, for example, fixes for bugs, new features, and versions integration.

Software versioning

versionversion numbermajor release
Branches allow contributors to isolate changes without destabilizing the codebase, for example, fixes for bugs, new features, and versions integration.

System integration

systems integrationintegrationintegrated
Branches allow contributors to isolate changes without destabilizing the codebase, for example, fixes for bugs, new features, and versions integration.

Software development

developmentdevelopedapplication development
A development branch or development tree of a piece of software is a version that is under development, and has not yet been officially released.

Software release life cycle

betabeta versionalpha
A development branch or development tree of a piece of software is a version that is under development, and has not yet been officially released.

Open-source model

open sourceopen-sourceopen source technology
In the open source community, the notion of release is typically metaphorical, since anyone can usually check out any desired version, whether it be in the development branch or not.

Concurrent Versions System

CVSConcurrent Version SystemConcurrent versioning system
Some revision control systems have specific jargon for the main development branch; for example, in CVS, it is called the "MAIN"; in Git it is called the "master".

Git

git repositoryJunio HamanoGit (software)
Some revision control systems have specific jargon for the main development branch; for example, in CVS, it is called the "MAIN"; in Git it is called the "master". Monotone (mtn), Mercurial (hg) and git call it "clone"; Bazaar calls it "branch".

CVSNT

WinCVS
In cvc and CVSNT, a shadow or magic branch "shadows" changes made in the upstream branch, to make it easier to maintain small changes (cvc is an open-source package building system incorporating a revision-control system for packages produced by rPath.)

RPath

Rpath LinuxrPath, Inc.
In cvc and CVSNT, a shadow or magic branch "shadows" changes made in the upstream branch, to make it easier to maintain small changes (cvc is an open-source package building system incorporating a revision-control system for packages produced by rPath.)

Monotone (software)

Monotone
Monotone (mtn), Mercurial (hg) and git call it "clone"; Bazaar calls it "branch".