Distributed version control
To provide students with experience in collaboration, you are warmly invited to join in here, or to leave comments on the discussion page. The anticipated date of course completion is 13 August 2010. One month after that date at the latest, this notice shall be removed. Besides, many other Citizendium articles welcome your collaboration! |
Distributed version control systems such as Git and Mercurial have emerged in the last few years as a viable replacement for older centralized version control systems such as Subversion and Centralized Version Control (CVS). Git in particular has swept the open source community, becoming the revision control systems of some of the most important open source projects (e.g., the Linux kernel, Qt, Ruby on Rails).
Overview
History
Linux kernel crisis
Popular DVCs
Git
Mercurial
Others
Comparison with centralized version control
Merging
Workflow
Adoption
Open source software
GitHub and BitBucket
GitHub.com was launched in 2008 as a hosting service for Git repositories. Improving upon many of the perceived flaws of older hosting services, GitHub has captured the vast majority of the Git hosting market share. GitHub's popularity has been partly responsible for the rising popularity of Git itself. BitBucket.org was also launched in 2008, offering a GitHub-like interface for Mercurial repositories. GitHub, BitBucket, and similar sites have swept the open source community, with many of the largest open source projects migrating to DVC and new DVC hosts simultaneously. Many of these new DVC hosts offer free public repositories for open source projects, charging only for private repositories.
Barriers to adoption
Support
Kiln
Auditing
git-svn
Platform support
Git, the most widely used DVC, was developed specifically for Linux kernel development. A Mac OS X port was achieved at a later date, but Windows lagged behind. Today Git can be run on Windows using Cygwin for POSIX emulation, or with the native msysGit can be run on Windows using Cygwin or native port called msysgit. Both these tools have greatly improved since their early releases, but the Git experience on Windows may still be behind Linux and Mac OS X. Mercurial and Bazaar do not suffer from the same platform fragmentation problems, probably owing to their multi-platform histories and largely Python (as opposed to C) implementations.
Development tool integration
EGit is a pure Java implementation of Git supported by the Eclipse Foundation. TortoiseHG offers Windows Explorer integration for Mercurial.