Hacker News new | ask | show | jobs
by dude_abides 3563 days ago
> But I ended up picking Mercurial for the distributed version control system, which we were definitely wrong on that one–should have picked Git.

I'm curious to know: is this sentiment widely shared? Is git really that much better than hg?

6 comments

Never used mercurial. I suspect it's just as good, but the problem the author probably sees is, like me, most everyone is familiar with git and new hires need to be trained in something unfamiliar with less community around it.
I wonder how large that friction is. I look at git, mercurial, etc as distributed version control first and foremost, and that they're more alike than different.

It could be that I witnessed the popular adoption of all this via Linux going from tarballs/patches/mailing lists -> bitkeeper -> git, and have used and witnessed-the-evolution-of rcs, cvs, subversion, various DSCMs, and so my concepts of source control are stretched more broadly than people that are experiencing the dissonance between (e.g.) mercurial and git.

Edit: clarifying words

If you are used to an "always branch" workflow, mercurial can impose a lot of friction.
Do you have anything you can point to for that friction? I'm always looking to do better than I already am and would be interested in understanding the issues here.
Used to work at Dropbox. Existing knowledge of new hires was 90% of the challenge with Mercurial with the other 10% being weird edge cases (e.g. very large/numerous repositories) that hadn't seen as much attention due to the smaller community.
Yes, the sentiment is widely shared.

No, git is not really that much better than hg (I personally find hg to be superior).

I have only a very tiny amount of experience with Hg, and it was my first experience with DVCS. I found the learning curve on it much smaller (which is mainly why I choose it over git at the time).

The reason I switched to git was mostly inertia. Many open source projects were going to git, Github was starting to really take off, and just generally there was a bigger community around git. This mean git got more (and likely better) choices for tooling, more help, and personally I would have to deal with fewer SCM's when working on open source/etc stuff.

I suspect the author was talking on those lines, and the other thing already pointed out in this thread: ability to find experienced people.

In my experience, yes. With SageMath we put a huge amount of work into switching from Mercurial to Git (I had originally chosen Darcs, then switched to Mercurial, then we switched to Git). In practice, the depth of functionality with Git can sometimes be an order of magnitude greater than that of Mercial, just do to git accumulating so much more developer momentum (see, e.g., the man pages for "git log" versus "hg log").
personally I like mercurial better than git, and also using on my desktop to clone github repos with hggit extension

Facebook picked mercurial over git because it's easier to customize.

Mozilla uses Mercurial too. Not to mention other companies from all the different industries using Mercurial with RhodeCode.
Mercurial supports only a subset of the use cases of git, while adding no exclusive functionality.

It is true that it is the subset that 90+% of the people need. But there are network effects on VCS, making git a clearly superior choice.

What doesn't Mercurial support?
From the top of my mind, rebase and amend. There's probably more.
mercurial supports rebase for a long time https://www.mercurial-scm.org/wiki/RebaseExtension
Rebase and amend are both supported in mercurial.