It's a genuine problem (for me at least) when starting a new project - bitbucket (-) and Mercurial (+) or github (+) and git (-). If anyone from github is reading this - please consider first-class Mercurial support. It would almost definitely be easier for you to do this than for bitbucket to make up the gap.
(I know lots of people prefer git, but Github already has that market pretty cornered. There is an opportunity among those who prefer hg.)
For example: `git checkout` can change the contents of files without changing where you are in the DAG, change where you are in the DAG, and even create a new branch. In Mercurial you'd use three separate commands for these things: `hg revert`, `hg update`, and `hg branch`.
The problem with git's approach is this: making every command very flexible through options means that you need to document the interaction of all these options in the man pages. That makes the documentation for each command harder to read, especially when you're in the middle of trying to get something done with a project and just want to do something quickly.
For a real example, look at the help for the two SCMs' commands for changing the contents of a file:
$ (hg help revert) | wc -l
47
$ (git help checkout) | wc -l
276
Some might say: "But `git checkout` can do so much more than `hg revert`!" That's absolutely true. However, every time I want to look up how to revert file contents I need to wade through hundreds of irrelevant lines in git's documentation. When I'm using Mercurial I say "Well, I know I need to use `hg revert`, let's just look at those 47 lines of help and find out what exactly I need."When you combine the help for the equivalent Mercurial commands it's still more succinct than git's help, because splitting individual actions into different commands means you don't have to document interactions between options:
$ (hg help revert; hg help update; hg help branch) | wc -l
113
$ (git help checkout) | wc -l
276
TL;DR version: Git's decision to make its CLI's commands very flexible results in painful documentation, so I perfer Mercurial.The big plus of hg is that it will work on all platforms - Win (yup), OSX, Linux The big plus of bitbucket is that it does not limit the number of users you can add to your project - github's paid plans limit number of users.
I'm sure github has a hell of a lot of features, but we dont use most of them - what we do use, the pricing model of bitbucket makes more sense.