Branching (software)

Branching (software)

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

Branches are also known as trees, streams or codelines. The originating branch is sometimes called the parent branch, the upstream branch (or simply upstream, especially if the branches are maintained by different organisations or individuals), or the backing stream. Child branches are branches that have a parent; a branch without a parent is referred to as the trunk or the mainline.[1]

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.

Branching also generally implies the ability to later merge or integrate changes back onto the parent branch. Often the changes are merged back to the trunk, even if this is not the parent branch. 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.

Contents

Motivations for branching

Branches allow for parts of software to be developed in parallel.[2] Large projects require many roles to be filled, including developers, build managers, and quality assurance personnel. Further, multiple releases on different operating system platforms may have to be maintained. Branches allow contributors to isolate changes without destabilizing the codebase, for example, fixes for bugs, new features,[3] and versions integration. These changes may be later resynchronized after testing.

Development branch

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. 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. Often, the version that will eventually become the next major version is called the development branch. However, there is often more than one subsequent version of the software under development at a given time.

Some revision control systems have specific jargon for the main development branch; for example, in CVS, it is called the "MAIN". A more generic term is "mainline".

Shadow or magic branches

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[citation needed] incorporating a revision-control system for packages produced by rPath.)

See also

References

External links



Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Software cracking — is the modification of software to remove or disable features which are considered undesirable by the person cracking the software, usually related to protection methods: copy protection, trial/demo version, serial number, hardware key, date… …   Wikipedia

  • Subversion (software) — infobox Software name = Subversion developer = CollabNet released = initial release|2000|10|20 frequently updated = yes operating system = Cross platform programming language = C genre = Revision control license = Apache License website =… …   Wikipedia

  • Comparison of revision control software — The following is a comparison of revision control software. The following tables includes general and technical information for notable revision control and software configuration management (SCM) software. This is an incomplete list, which may… …   Wikipedia

  • Fork (software development) — In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software. The term implies a split in the developer… …   Wikipedia

  • List of revision control software — This is a list of notable software for revision control. Distributed model In the distributed approach, each developer works directly with their own local repository, and changes are shared between repositories as a separate step. Open source *… …   Wikipedia

  • Gearbox Software — Infobox Company company name = Gearbox Software company company type = Private foundation = Plano, Texas, USA (1999) founder = Randy Pitchford Brian Martel Stephen Bahl Landon Montgomery Rob Heironimus location = Plano, Texas, USA key people =… …   Wikipedia

  • Git (software) — Infobox Software name = Git author = Linus Torvalds developer = Junio Hamano, Linus Torvalds latest release version = 1.6.0.2 [cite mailing list |mailinglist=git |author=Junio C Hamano |url=http://marc.info/?l=git m=122128644221821… …   Wikipedia

  • Mercurial (software) — Infobox Software name = Mercurial caption = developer = Matt Mackall latest release version = 1.0.2 latest release date = release date|2008|08|13 latest preview version = latest preview date = operating system = Unix like, Windows, Mac OS X… …   Wikipedia

  • Subversion (Software) — Subversion Entwickler: CollabNet Aktuelle Version: 1.6.1 (9. April 2009) Betriebssystem …   Deutsch Wikipedia

  • Freeze (software engineering) — In software engineering, a freeze is a point in time in the development process after which the rules for making changes to the source code or related resources become more strict, or the period during which those rules are applied. A freeze… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”