Share on Facebook Share on Twitter Email
Answers.com

Distributed revision control

 
Wikipedia: Distributed revision control

Distributed revision control (or Distributed Version Control (Systems) (DVCS), or Decentralized Version Control) is a fairly recent innovation in software revision control. It provides some significant advantages over the more traditional centralized approach to revision control, and 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

Distributed vs. centralized

Comparisons are often made between centralized and distributed revision control:

Differences

  • There may be many "central" repositories.
  • Code from disparate repositories are merged based on a web of trust, i.e., historical merit or quality of changes.
  • Lieutenants are project members who have the power to dynamically decide which branches to merge.
  • Network is not involved in most operations.
  • A separate set of "sync" operations are available for committing or receiving changes with remote repositories.

Advantages

  • Allows users to work productively even when not connected to a network
  • Makes most operations much faster since no network is involved
  • Allows participation in projects without requiring permissions from project authorities, and thus arguably better fosters culture of meritocracy instead of requiring "committer" status
  • Allows private work, so you can use your revision control system even for early drafts you don't want to publish
  • Avoids relying on a single physical machine. A server disk crash is a non-event with distributed revision control
  • Still permits centralized control of the "release version" of the project

Disadvantages

  • Concepts of DVCSs are more difficult for developers to grasp as they are required to know more about infrastructure.
  • It's not possible to remove or change the whole history by only one party. This may be an issue for some organizations, who would like to have full control over the history.
  • A centralised server tends to be favored in a corporate environment where access management and selective code visibility is more easily achieved; in this sense, tighter data security.
  • Organizations sometimes fear that distributed version controls systems may allow developers to bypass official channels for patch propagation.[citation needed]
  • There are no dedicated versions at one time, There are multiple variants.[original research?]
  • DVCSs are often thought of as a "new and unproven" technology from a corporate perspective[who?].
  • There is debate as to whether a DVCS necessitates more frequent manual conflict-resolution when merging trees for a final release

Work model

The distributed model also impacts the traditional developer working model.

History

First generation open-source DVCSes include Arch and Monotone. The second generation was prompted by the arrival of Darcs, followed by a host of others, including Bazaar, Mercurial, and Git.

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

Future

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

Due to the explosion of new DVCSs in the last couple of years, it is likely that some of them will slow down or die off.

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. E.g., the Gazest wiki, ikiwiki.

See also

References

External links


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Distributed revision control" Read more