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:
- Usability - git was quite obscure back then
- Speed - bazaar and monotone was quite slow
- Large enough uptake - OpenSolaris and Mozilla started using Mercurial at the same time.
- Runs on all platforms, if we ever employed someone who wants to use Windows
- 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