After having asked the community about which decentralized versioning system W3C should use, we made our DVCS platform operational a few months ago, powered by Mercurial. The obvious contender was Git — here are some of the reasons why we picked Mercurial over Git, in the hope that this analysis can be useful to others.
Choosing a DVCS platform in an organization such as W3C is a lot more complicated than just following the trend, which seems to be in favor of Git today. For example, we had to take into account the tools coming along with the system and the clients available on the various operating systems used by the diverse set of Working Group participants and open source developers, as well as the support offered in third party softwares. Mercurial has clearly a superiority there over Git especially for supported clients under Windows.
A lot of our users are able to use the most advanced features of both DVCS but a significative part of them just want to share files, handle easily what they are doing, deal with conflicts and eventually being driven through a graphical user interface.
We haven’t heard any request for fancy history modification features: while Git is clearly more powerful in letting you manipulating your history, we liked the simplicity of the Mercurial command set and the availability of several GUI.
We will have to administrate a growing number of repositories. We knew before launching the service that we would have a lot of requests to tweak their configurations. As a result, the Systems Team needed something easy to set up, easy to hack on and also easy to integrate with our existing systems. Indeed, we couldn’t rely on any external hosting services like GitHub or BitBucket as we wanted all our repositories to be tied to our existing W3C accounts (through LDAP).
Mercurial has offered all those tools for a long time and lots of tutorials are easy to find on the Web.
To summarize, we liked both systems a lot. On the one hand, Git seemed to be more powerful, with more features but offered too much for what we needed. On the other hand, Mercurial came with more tools and seemed really simpler both for our users, and for us in terms of integration with other tools and services.