Some posts ago I was complaining about how big Git learning curve is and some other inconveniences that we had been facing. Some of them were just kind of flaming, I know.
The thing is that we switched to Mercurial and CodeBaseHq.com instead of Git and Github.com and are quite happy with the change.
CodeBase surprised me when I got a letter from the UK the day after making the payment. They send a manual and some other stuff that you can see in the picture, to every customer, no matter what kind of customer you are. The letter took just one single day to arrive from UK to Canary Islands, which is a record. The tools provided by CodeBase in the website are great, even better than Github.com
Now, regarding Mercurial, I believe it is what we were looking for. The concepts are pretty much the same than apply to Git, so the learning curve has been shorter because we already knew basic things. However, I'd say it is more user friendly. From the very moment you clone a repository from the main repo (CodeBase for us), everything gets configured, you can start working without telling Mercurial where do you want to push or pull, nor managing any configuration file. Straightforward. Every repository keeps its own revisions count. So commits are identified by a hash, but they got also a revision number that humans understand better. I like that because we don't have many branches, we work mainly against the central repository.
Merges and conflicts are easy to work around. We haven't had to deal with any weird issue. The "incoming" and "outgoing" feature is very nice, together with the fact that the working directory doesn't change when you bring changes from other repo, till you decide you want it to be updated. Cloning local repos is fast, so you can clone when "incoming" reveals big changes or merge goes crazy and can step back quickly recovering your local changes.
Regarding the log, you get the sample problem than with Git, merges are difficult to read in the log. However, the "hg pull --rebase" make it work as SVN, merge does not appear in the log, so it keeps clean and readable. We know now that Git has also a rebase command, but we fond it naturally in Mercurial documentation and not in Git. Yeah, that is probably our fault, but the fact is that we found a solution sooner.
So far so good with Mercurial. It is very similar to Git, but those small things that annoy me, are easy and natural in Mercurial. Documentation is better in my opinion.