Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Why is there so much talk about git but little about mercurial
12 points by geeko on Dec 13, 2008 | hide | past | favorite | 35 comments
Is git fundamentally/technically better than mercurial or is it better marketing? Has mercurial failed?



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.


You forgot about "git commit" vs. "hg ci".

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.


It's sort of like if people suddenly got singing-and-dancing-in-the-streets excited over a somewhat better version of make

I'd sing and dance for a somewhat better version of make that doesn't end up causing me more problems over time then it solves.


I meant people in general, not programmers specifically.

People who wouldn't generally care about something like a VC system are excited about git because Linus is talking it up, I think.


I aliased "g" to "git" - problem solved + g is 50% better than hg, right?


i aliased "" to "hg" ... oh wait ...


On the dvorak keyboard, this is not the case. Obviously hg is still shorter, but both letters are typed by the same finger which is slow.


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.


you may want to take a look at http://www.kernel.org/pub/software/scm/git/docs/git-submodul.... mercurial lacks this as of now.


Mercurial has extension support, and one of them (used for example on the OpenJDK project - a "real" project of some size) is "Forest", which does just that: http://www.bitbucket.org/pmezard/hgforest-crew/overview/


there is no documentation at all...


Most things can be found on the Mercurial repository:

http://www.selenic.com/mercurial/wiki/index.cgi/ForestExtens...

Not sure why there are no docs in the hgforest repository though - that seems like a pretty big oversight.


Jeebus. I'm curious what a 100GB branch contains? Data? Binaries? Images?


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.


The answer you're looking for is that the cool and/or hip Rails kids decided to back git.


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.

A few weeks ago, I threw together a blog post detailing how I use mercurial (http://naleid.com/blog/2008/11/25/my-mercurial-setup-plus-so...).

There's buzz out there about mercurial, it's just hard to hear over the cacaphony being caused by git.


Mercurial is widely used...

> Has mercurial failed?

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.


http://video.google.com/videoplay?docid=-7724296011317502612

is a Google Tech Talk by one of the main Mercurial developers.


I never used a vcs before but tried git and it was very easy to use and together with github(which really is superawesome) it is truly super.


Mostly it is just hype/marketing: technically, it's a wash.


Technically git is a wash? What do you mean?


The phrase "it's a wash" in this context means that Git and Mercurial are essentially equal.



It is not true that hg doesn't have something similar like github.

Hg has a better Github which is BitBucket - http://www.bitbucket.org/ .

At least, BitBucket offers at least one private repo for free accounts.


The following is written on the site:

"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.


I love mercurial. Works on windows/linux too and bitbucket.org is great.


When is MercurialHub.com launching?


Check out http://www.bitbucket.org - it's awesome.


Try both, choose for yourself.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: