There are a lot of advantages to using a distributed revision control system as opposed to centralized. There are also some down sides, mostly in that it can be a bit more confusing to manage. A centralized web interface however seems to solve that problem quite nicely.
Currently there are two major competitors in that space, Github and Bitbucket, that manage Git and Mercurial repositories respectively. I’ve used Github for a while and recently have really started using Bitbucket and I thought I’d share some thoughts and comparisons of the two. There are a lot of blogs that compare Git and Mercurial, but this is not one of those blogs. I personally have a preference for mercurial, but for admittedly stupid reasons like it was written in python and the syntax more closely resembles SVN which I’ve become used to. To me, a major differentiator in choosing one over the other is the interface or ‘hub’ that manages it.
Below is my item by item lineup showing the differences between GitHub and Bitbucket
|distributed revision control||yes||yes|
|free private projects||0||1|
|# of users||lots||not lots|
|happy hours||in SF||no|
There really aren’t a lot of differences. Personally, I actively use both. Learning both is easy as the syntax difference between the two revision control systems is minimal and both hub interfaces are very similar.
I use git for open projects like TwitTornado where privacy is not an issue and where I’d like to get more developers involved. Its really got a fantastic social network of hackers.
I use bitbucket for my private repositories as it allows 1 free private repository (per user) and has cheaper monthly rates.
I hope this helps others make a decision between the two and try both of them out. Let me know in the comments if I’ve left any parameters out of the table above and I’ll add them in.