Mercurial is a fantastic VCS system that helped me get 'into" DVCS, and for that I am thankful. Even in 2013, it feels like it has the superior windows interface in TortoiseHG and I loved how extensions for Mercurial were usually a lot more cross-platform than git since they were usually just written in Python.<p>That said, once I got my head around the full ramifications of Git's lightweight branching, I still think it was the better choice over named branches and bookmarks. When learning Mercurial, SVN-minded me naturally gravitated towards branches for everything because of the name, and learning the distinction of when to use bookmarks and when to use branches wasn't exactly clear until I finally understood how Git's branches worked - and at that point the thought of enshrining branch names in the history forevermore suddenly turned from an obvious "why not?" to a "why?". Git's interface can always get better, but Mercurial will always have branches that live forever in history and are named "Branches".<p>Still, in Bizarro-2013 where Git never existed or never got the boost from Github, I think Mercurial would have been just as serviceable, and I think that it's a great second option to present if you want to migrate to a DVCS but your teammates can't get their head around Git. Kudos to them on another release.
I think it's strange that Git seems more popular. Mercurial is a great tool. Also check TortoiseHg.<p>Edit: I didn't want to start a flamewar. I'm just wondering why Git seems more popular because I think both tools are very good.
I like that Mercurial still tries hard to get new concepts into the core. There is something they call "phases" which is a boundary marking what was published and what not. Phases then forbid people to rebase changsets that were already published (unless you obv tell it to force it anyway), which is more more convenient than git's way. In addition they work on something called obsolete markers which will also record how changsets moved on rebase, etc giving it much more flexibility and power than git.
Whenever the Git vs Mercurial topic comes up I think this thread [1] about Facebook having massive slowdowns with their large codebase using Git is quite interesting.<p>[1]: <a href="http://thread.gmane.org/gmane.comp.version-control.git/189776" rel="nofollow">http://thread.gmane.org/gmane.comp.version-control.git/18977...</a>
I'm glad that the shelve extension (which is like stash in git) is included by default now. Even though that extension has been around for a while, it feels like it's considered a core function now, rather than an "extra." (Especially for git users, who are accustomed to having `git stash` out of the box. So now there's a little less friction when trying to do the same things in Mercurial.)
I spent a few years developing tooling and processes around Mercurial, then moved to a new role some months ago where Git is used exclusively. I am afraid that I still prefer hg; while git is, as a rule of thumb, faster, hg takes better care of your data (Much harder to lose changesets) and presents a cleaner UI out of the gate.
Right now if you try to install it using pip `pip install Mercurial` will still install 2.7.2 version.<p>Do instead: `pip install <a href="http://mercurial.selenic.com/release/mercurial-2.8.tar.gz`" rel="nofollow">http://mercurial.selenic.com/release/mercurial-2.8.tar.gz`</a>