Hacker News new | past | comments | ask | show | jobs | submit login

Because Google and Facebook are using Mercurial over Git internally.

Edit: And for those that are just shocked that git isn't the answer.

Facebook: https://code.facebook.com/posts/218678814984400/scaling-merc...

Google: http://www.primordia.com/blog/2010/01/23/why-google-uses-mer...

Well, Piper conforms to the Perforce API-ish, and Android and Chrome are both on Git.

Mercurial was pushed internally as being the "better" (for some dimension of better) between it and Git back in 2010, but I think even the most hardline Mercurial fans have realized that in order to meet developers in the middle in 2015, we need to use Git for our open-source releases. We have a large investment in Gerrit [1] and Github [2] now.

So the Mercurial comment is probably entirely based on scaling and replacement for the Piper Perforce API, rather than anything externally facing.

[1] https://www.gerritcodereview.com/ [2] https://github.com/google

Though both Android and Chromium still build in a way more similar to that for a monolithic repo. They use repo and depot_tools, respectively, as abstractions on top of Git in order to clone and manage all their Git repositories together as if they were a single large repository.

I don't think I'm leaking anything by saying that that article about Google is incorrect. Mercurial isn't used at Google, not anywhere I've seen. Probably that article has something to do with the now-defunct Google Code site, which did in fact use Mercurial.

Google devs are working (with some help from Facebook) on getting hg into Google, but they're not there yet. Look at all the work that Google has been putting into hg. It's not purely out of the goodness of their hearts:


I always see a lot of Google and Facebook at the Mercurial sprints.

I can't comment on what Google might be doing in the future with RCS. Well, I can't comment but also don't know. I personally like hg.

But if I were to take a poll of the informed and opinionated engineers sitting around me, they would almost all likely take git over hg.

In any case, git is in actual widespread use _now_ at Google, for Android and Chrome, and other open source stuff (some of which was moved recently from code.google.com to github).

Google isn't using Mercurial at any significant scale, but there is work being done to see if it can be made to work as a client for Piper.

There may be Mercurial plans for the future, but to date I've never encountered it at Google. Lots of people use git, though, including folks outside of Chrome and Android who are working against Piper.

I was at Google for a long time and it was almost entirely Perforce (some Googlers used git) until it was Piper (which is very similar to Perforce). L&S used CVS at Stanford for the original Backrub/Google code and for some time after the establishment of Google, Inc.

Is Piper a wrapper around Perforce or built from scratch? What is it exactly, if you don't mind me asking?

It was built from scratch because it was designed as a replacement for Perforce because Perforce is expensive and the G used wrappers around it, anyways.

The commands are still basically the same as Google's wrappers around Perforce and the learning curve was non-existent for someone who was used to using Perforce at Google.

There are also a massive number of git repos internal to googl e as well.

One thing mentioned in the paper, but not mentioned here, is that there are teams that live in GIT, such as android and chrome, but they are not monolithic.

How do you know that?

He/she doesn't. It's false.

That's not true of Google. At least, not on any of the teams I've worked on. I use a Git wrapper around Piper.

Applications are open for YC Summer 2020

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