We’ve watched many of our favorite open source libraries migrate from Google Code hosting to BitBucket and GitHub lately. The main reason is that most of the projects wanted to move from centralized version control like Subversion (used by Google Code) to distributed version control systems like Mercurial (BitBucket) and Git (GitHub).
If you needed further proof that the world is moving toward distributed version control, last year Google Code began offering Mercurial as an alternative to Subversion (though Mercurial projects are still in the minority on Google Code).
Assuming you’ve already made the often painful migration from CVS to Subversion, you may be wondering why you would want to switch version control systems yet again.
The short answer is that if you’ve ever tried to branch and merge in Subversion then you already know the main advantage distributed systems have over Subversion — branching and merging your code is no longer a massive headache doomed to failure.