I have used Apache Subversion (SVN), a "2nd generation" version control system for
several years and am quite comfortable with it. Over the last year, I have found it
impossible to ignore the new "3rd generation" DVCS that are gaining mass
popularity and gradual adoption, namely
and
.
What are the reasons to go from a centralized to distributed version control system?
- Everyone gets a local copy of the repository.
- developers can commit changes frequently without sending buggy, untested code to everyone else
- do not need a network connection to commit (only to push/pull to a remote repository)
- faster commits
- private changes until ready to share code with the team/world
- Easier merging. (Independent of commit step)
What are some disadvantages?
- learning curve
- integration with existing tools like bug trackers is limited
What/where are some resources?
- While at OSCON 2011 I picked up
a free copy of Version Control by Example by Eric Sink (pyrenean gold press 2011).
This book makes a relatively dry topic - version control - interesting. It provides a solid background, has nice diagrams and compares SVN, Hg, git and veracity usage. - Joel Spolsky of Joel on Software has written a very nice six part tutorial series on Hg
- Anyone can start creating or cloning projects hosted on github.com, and push bug fixes or feature changes. Whether or not the author pulls your changes is another story.
- Analagously, bitbucket.org hosts Hg projects.

All Articles
Add new comment