Like it or not, the distributed revision control model is here to stay. Brian Fitzpatrick, a Subversion and Apache developer, told a group of us Purdue students that SVN will indeed be getting distributed features similar to “the Mercurial model.” Many companies are already starting to use DRCS and the rest are on their way.
The quickest and easiest way I can explain a DRCS to a developer who’s only used a centralized revision control system is like this: a DRCS is like all developers having their own local repository. When it’s time to share changes, it’s almost like having a CVS repository of CVS repositories. Among local commits and cheap branching, there are many other great benefits of a DRCS that I wont go into. What I will talk about are some resources and techniques for learning a DRCS.
Enumeration of DRCSs
There are a few major players in the DRCS area, today. They all embody the same general model and feature set but each system also fills a certain niche.
- Monotone: One of the earlier DRCSs. Written in C++.
- Git: Created by Linus Torvalds for the Linux kernel project. Written in C.
- Bazaar: Canonical’s DRVS written in Python. Works well with all OSs.
- Mercurial: Also written for the Linux kernel project in C and Python. Works well with all OSs.
Like I’ve said before, the best way to learn anything technical related is to watch tech talks about it. This holds true for a DRCS as well.
- Linus Torvalds’ Git Google Tech Talk: Explains why programmers should use a DRCS. Linus is the creator of Git as well as the project it was designed for: the Linux kernel.
- Randal Schwartz’s Git Google Tech Talk: Explains how to use Git. Randal is a prominent Perl author and long time Git hacker.
- Bryan O’Sullivan’s Mercurial Google Tech Talk: Explains how to use Mercurial and why a programmer would want to use it. Bryan is a Senior Principal Engineer at QLogic, Inc and Mercurial developer.
Books & Documentation
Nobody wants to read massive books and documentation sets on their computer but for reference, they exist. Watch the videos to learn about DVCSs and then use these resources for reference during projects.
- The Mercurial book gives a great overview of the command set of a DRVS and use cases/examples.
- The Git documentation is pretty intense but there are some use cases available as well.
A colleague of mine, Michael Olson, has some great articles about using Git and also some commentary about SVN that are definitely worth reading. It’s not up to people to teach you how to use a DRCS, it’s up to you to make sure you don’t get behind the times. If you have trouble or just plain dislike learning new technologies then maybe computer science is not your path.
- None Found