• This web proxy is sponsored by HideMyAss.com

Distributed revision control

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Distributed revision control (or Distributed Version Control (Systems) (DVCS), or Decentralized Version Control) is a fairly recent innovation in software revision control. It has some defining characteristics that separate it from centralized systems. However, the line between distributed and centralized systems is blurring in some regards, especially since DVCSs can be used in a "centralized mode".

Contents

[edit] Distributed vs. centralized

Comparisons are often made between centralized and distributed revision control:

DVCS proponents point to several advantages of distributed version control systems over the traditional centralised model:

Software development author Joel Spolsky describes distributed version control as "possibly the biggest advance in software development technology in the [past] ten years."[1]

As a disadvantage of DVCS, one could note that initial cloning of a repository is slower compared to centralized checkout, because all branches and revision history are copied. This may be relevant if access speed is low and the project is large enough. For instance, the size of the cloned git repository (all history, branches, tags, etc.) for the Linux kernel is approximately the size of the checked-out uncompressed HEAD, whereas the equivalent checkout of a single branch in a centralized checkout would be the compressed size of the contents of HEAD (except without any history, branches, tags, etc.).

[edit] Work model

The distributed model is generally better suited for large projects with partly independent developers, such as the Linux kernel project, because developers can work independently and submit their changes for merge (or rejection).

In the centralized model, developers should serialize their work, or they may have problems with different versions.

[edit] History

First generation open-source DVCSes include Arch and Monotone. The second generation was initiated by the arrival of Darcs, followed by a host of others. Among them, Mercurial and Git were created as potential replacements for BitKeeper when it was pulled from free use by the Linux kernel project by its publisher. Bazaar followed not long after.

Before these, closed source DVCSes such as Sun WorkShop TeamWare (which inspired BitKeeper) were widely used in enterprise settings.

[edit] Future

Some natively centralized systems are starting to grow distributed features. For example, Subversion is able to do many operations with no network.[2] It may become more difficult to separate natively distributed vs centralized systems.

There are many tools that rely on version control, such as wikis, file systems, and text editors. Some are starting to adopt DVCS features, and even integrate with them, for example the Gazest wiki, ikiwiki.

[edit] See also

[edit] References

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages