git Is Winning The DVCS Battle With git-svn

Saturday, February 9th, 2008

I’ve been using distributed version control for over a year now, and if it is up to me, I will never use a centralized VCS again.

When I evaluated the alternatives last year, I choose Mercurial as the DVCS we are using at WeMind. The reasons were:

  1. Usability - git was quite obscure back then
  2. Speed - bazaar and monotone was quite slow
  3. Large enough uptake - OpenSolaris and Mozilla started using Mercurial at the same time.
  4. Runs on all platforms, if we ever employed someone who wants to use Windows
  5. Built in Python which could be a good think if I ever wanted to extend it

A year later we are happy with Mercurial, but the landscape has changed. In particular I am seeing a huge growth of people using git, especially within the Ruby community. Which in itself is something I am happy about.

The biggest reason I see for git’s resurgence is git-svn. It allows people to start using git locally while still having Subversion as the backend, and when everyones ready the switch is easy.

There is a hgsvn in the Mercurial world, but it is read only, so you cannot push your changes back to Subversion. I strongly believe that the Mercurial community should focus on this if it wants to regain its momentum.

Git still has weak support for Windows, but that seems to be a non-issue in the Ruby world.

I am pretty agnostic about which DVCS will be the dominant one. The most important thing is that people are moving away from the centralized VCS’s.

For a great post on the subject, read what Dave Dribin has to say about it

Distributed Version Control

Wednesday, October 17th, 2007

I just read this article on distributed version control by Ben Collins-Sussman who is a lead developer behind Subversion. If I understand his arguments, he basically says that DVCS is better than centralized VCS, but you probably should not use one since 80% of all developers are too dumbfounded too understand VCS at all.

I am one of the pretentious, self-righteous and obnoxious fanboys of DVCS. And let me tell you this: the difference between using DVCS and Subversion is on par with the difference in programming in Ruby compared to Java. If you have made the switch you just do not want to go back.

And finally: We have taught our GUI-guy Martin to use Mercurial. He has limited experience of using VCS’s, but he grasps the difference between commit and push. My face is straight saying this.