hg is easier to type than git. That's 33% better at least(with integer percentages, it's event better with float percentages... and even better with fractions).
Imagine typing git 20 times? Well can you see it now? Good.
NOW, imagine typing hg 20 times, that is 60 keys pressed, VS only 40 keys. You'll probably make less errors with 2 keys too.
git didn't bring anything new to version control... with it's 3 key system. svn had 3 letters, cvs even had 3 letters. However hg has brought a 33% improvement to version control -- with it's revolutionary 2 letter system.
Obviously a break through. Obviously fucking cool.
The real reason is that git has Linus behind it, of course, and the fiasco with BitKeeper attracted a lot of attention. This led to tremendous buzz, and then the Ruby / Rails communities* (among others) started spreading and amplifying it. I see tons of blog posts about how git is the best thing ever, and it's a freaking version control system, you know? It's sort of like if people suddenly got singing-and-dancing-in-the-streets excited over a somewhat better version of make, or something. Think about that.
There are other DVCSs that are also quite good (I like Mercurial, for one), but a pretty good version control system can't compete with a pretty good version control system with a tidal wave of hype.
* Also, since the Rails people are themselves working on a popular web development system, they probably had a disproportionately large amount of influence among bloggers in tech circles.
Git gets talked about a lot because it's a good tool, and was written by Linus Torvalds - which basically ensures that a whole lot of people will try it out. Since it's pretty damn good at what it does, most of those people kept on using it.
Alas neither can support effective work in large repositories: at my day job we have about 100gb repository (just one branch), but most people only use 4Gb at a time. Except the build servers - they get the most of the stuff at once. Perforce lets you create partial enlistment and only get the 4gb you need, while both Git and Hg require pulling entire 100Gb over the network.
There's been very little progress on these issues as well - both communities seem to be content with relatively small repositories. Sad.
Oh yeah. They both also fail miserably on few large files (hundreds of megabytes). I did tests with 100-200 MB ascii text files and good old Subversion beat both Git and Mercurial easily. Git was better, just several times slower than SVN. For Hg, I had to kill the process.
Basically, it's everything that goes into the product.
1. source code
2. toolchain. there are good reasons for it - we had enromous problems with people using outdated toolchains and fighting with obscure compiler bugs. also just installing new toolchain for everyone will not work - it may have new bugs which are only triggered by old code. bottom line is that toolchain must be in sync with the source and it was a painful lesson. I must add that we have dozens if not hundreds of branches.
3. tests. tests must be in sync with the code, and are branched/merged together. a lot of tests.
4. test results. must be in sync with tests and branched/merged together.
So there you have it.
Other people I know who also have large repsitories are art studios who want to version their artwork - they store raw images.
GNOME and Xfree86 are huge git repositories. They "solved" the problem by using git submodules and their project has already been broken down into modules already.
I'm not entirely satisfied with this approach, since it means a brand new developer has to figure out how to pull all the submodules down when setting up his dev environment.
I'm also a big fan of Perforce for large (especially internal) repositories. It handles just about everything smoothly and is also free for Open Source.
That being said, I've really been enjoying working with Mercurial. I think the biggest shortcoming I feel is not being able to branch (easily?) subdirectories rather than repositories.
I tend to think that this is the case as well. If you look at the GitHub Language Stats (http://github.com/languages) you'll see that Ruby takes up 38% of all lines of code on GitHub. JavaScript takes up another 25%.
Python's only at 6% and Java, C++ and C files combined are only 8% of the total LOC.
Git actually is a nice tool and it's getting quite a bit better, but I prefer mercurial, and I think that it's an easier tool for devs used to SVN to make the switch.
I'm not sure why you equate hype with success. Anyway, Hg is an awesome tool. I love FreeHg too. I use it to manage my .vim/vimfiles, amongst other things.
I first heard about Git when the guy who wrote most of of stood up and did an empassioned Google Tech Talk about it. I'm loathe to pick it out as marketing, because that invites the idea that any communication is marketing communication. But communication is important, I've never heard a Mercurial dev get up and talk good about their project.
Is git technically better? I have no idea, git works fine for me, someone will have to get up and point out why Hg is so great before I even try it.
"And no, BitBucket doesn't count just because they ripped off GitHub screen for screen. When they are 30 times bigger and I hear that anyone choose Mercurial over something else because of the community on BitBucket, then I'll reconsider.
Launchpad for Bazaar is closer, but they're still a fraction of the size, nor have I heard of anyone leaning towards Bzr because of the incredible Launchpad community they want to take part in. However, as they are more legitimate, I've removed the 'bzr' flag from this argument."
What do you want us to say about it? I use it every day at work and at home, and it's a solid DVCS; I don't talk about grep (or any of my other tools), either, but that doesn't mean grep "failed".
It could be where you hang out. I heard about Git a lot when I was using Rails, because Rails used it. I hear a lot about Github here on HN, because it's a cool web startup. If you go someplace where Hg is used (and there are some big projects) you see a very different picture.
Imagine typing git 20 times? Well can you see it now? Good.
NOW, imagine typing hg 20 times, that is 60 keys pressed, VS only 40 keys. You'll probably make less errors with 2 keys too.
git didn't bring anything new to version control... with it's 3 key system. svn had 3 letters, cvs even had 3 letters. However hg has brought a 33% improvement to version control -- with it's revolutionary 2 letter system.
Obviously a break through. Obviously fucking cool.