All the Google and Facebook engineers who are currently using Mercurial, I want to hear from them how they feel about Mercurial over Git. If they leave GooG or FB, will they still use Mercurial?
The problem with this question is that there are so many _different ways_ to use Mercurial. hg's core is fairly minimal and everyone I know who uses it rely heavily on core- and third party extensions to get any productive work done.<p>Mercurial does a good job at facilitating everyone's favourite, yet obscure, workflow. There are people who prefer using things like mq (patchset queues), which until recently also was Mozilla's recommended workflow. Queues are a novel way to organise your work in progress, but is quite different from what people are used to coming from svn or git.<p>More recently bookmarks were added (also as an extension you have to opt-in to), which are reminiscent of git branches. They make it possible to have a HEAD-based workflow where you rebase frequently, much like you would with git, only that the defaults of `hg log` and various other commands don't interop very well, which means you have to memorise a lot of flags and arguments.<p>There are also many strange defaults in hg that you simply have to get used to, for example that `hg push` by default pushes everything. I have a hook in place on the remote end which prevents me from doing that.<p>By far the most frustrating experience with hg is that you cannot expect the default installation to come with sensible defaults. The argument is that keeping "advanced" functionality out of core prevents new users from accidentally using it.<p>An unintended consequence is that it sometimes makes it difficult for other people to help when you're stuck because more often than not their environment won't match yours.<p>One frequently lauded aspect of hg is that the user interface is easier to understand. Whilst I appreciate difference in taste, my experience is the opposite. If you follow the HEAD-based bookmark-style workflow, I find many cognitive dissonances in how the bookmark feature interacts with other commands.<p>At Mozilla we use hg for the canonical repositories and we have many Mozilla related extensions, but whereas I use hg every day now and it's a fine experience as long as I stay within the marked lines, I would return to git in a heartbeat if I had the chance.
Why only Google and Facebook engineers?<p>I use both Mercurial and Git, and honestly, they aren't that different. Unless you're doing something very specific I don't see why you would choose one over the other.
heavy mercurial user. all my open source projects are on it. first at Google code (rip) and now on bitbucket.<p>though i have to use git at work daily. github to add insult...<p>my finger memory is now on git. and that's where git "wins". the chance that you will be forced to use it and learn the awful laundry list of steps to properly use it (hint, if you ever type "pull" you are doing it wrong) you get your finger memory and then curse when you have to use the simple and more intuitive solutions. damn dumb fingers.
Honest question: could someone summarize why would one use mercurial vs git? Both seems really close in features. What would be a use case where one would outshine the other?
Google is working on integrating Mercurial into their workflows, but hasn't quite achieved this goal yet. They are growing their hg team with hopes of replicating what Facebook has done, but they aren't there yet. Check out their contributions:<p><a href="http://selenic.com/hg/log?rev=google.com&revcount=80" rel="nofollow">http://selenic.com/hg/log?rev=google.com&revcount=80</a><p>Facebook is almost entirely hg by this point, though.