Comparing Github and BitBucket
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
GitHub BitBucket
pull requests
yes
yes
forking
yes
yes
command instructions
yes
yes
distributed revision control
yes
yes
network graph
yes
no
inline editing
yes
no
developer profiles
yes
yes
wiki
yes
yes
issues
yes
yes
rss feeds
yes
yes
source browser
yes
yes
monthly price
cheap
cheaper
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.