Eeny, meeny, miny, moe,
which DVCS should I let go?
2006.07.18 22:23 Filed in:
Tech
A critical tool in a programmer's chest includes a
version control system (VCS) to keep track of changes
to software. I was initially going to install the
Subversion VCS for my new projects, but decided to look
around for other alternatives. Over the past couple of
days I have found out that there is a lot of activity
going on in this historically stagnant part of
computing.
My search for alternative
version control
systems (VCS) started after I had successfully
hacked my NSLU2 network appliance so that I could
install on it a very popular open-source VCS called
Subversion. I managed to get everything installed,
however, during configuration I began to have doubts
about using it. There were more setup options than I
wanted to mess with and every new one had me reading a
little more to fully understand how the system worked.
I had been hoping for something more plug-n-play
because I'm probably going to be the only person using
it. Thus began the hunt for other alternatives.
While poking around the 'Net, I had run across several
different open-source projects focusing on version
control, but didn't really think much of them. My
first, unfounded impressions were that these were young
and most likely slated for abandonment like many other
projects before them. Of the names I did see, none
stuck out like CVS and Subversion; after all, they were
the only 'real' version control systems, right? Right?!
Guess again! As I dug deeper I was surprised to find
that there is a lot of activity going on in the world
of version control. I found over ten different projects
all involved in developing what you might call a
'modern' version control system! Some of them are
Bazaar-NG, DARCS, Monotone, Arch, Git/Cogito,
Codeville, Mercurial, and SVK.
The main idea behind many of these systems is to change
the repository model from having a central repository
and server to a distributed one where everyone who has
a 'checkout' of the source code can be their
own repository and server, thus imparting the
name of
distributed version control systems
(DVCS). Not only are these new systems more robust,
they also give software developers more flexibility in
how they can share code amongst themselves. And the
possibilities are actually quite exciting!
Of the projects which I found, I've narrowed my options
to three: DARCS, Mercurial, and Bazaar-NG. I'm still
evaluating which one I want to use, but I'm leaning
towards the latter two. I'll tell you more about what I
decide later, but I will leave you with some of the
important pages that I read.
Resources
Project sites
•
http://bazaar-vcs.org/
•
http://darcs.net/
•
http://www.selenic.com/mercurial/
Thoughts from others
•
http://jaortega.wordpress.com/tag/version-control/
•
http://blog.ianbicking.org/dvcs-mini-roundup.html
(don't miss the comments)
•
http://mark.stosberg.com/Tech/darcs/cvs_switch/index.html
Comparisons
•
http://better-scm.berlios.de/comparison/comparison.html
•
http://zooko.com/revision_control_quick_ref.html
•
http://bazaar-vcs.org/RcsComparisons