Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Mercurial has narrowspecs these days too! Facebook's monorepo lets you check out parts of the overall tree too. It's not like every Android engineer's laptop has all of fbios in it.


sort by: page size:

Facebook uses Mercurial for its big monorepo. Google’s big monorepo was once P4 but isn’t anymore.

Facebook uses Mercurial with a REALLY large monorepo with some extensions[0]. Google also has some usage of Mercurial.

[0] https://bitbucket.org/facebook/hg-experimental


Most of monorepo tools for Mercurial are upstreamed already and are available in a standard Mercurial install.

I don't think anyone in this thread is CTO of a company size of Facebook. For a medium size company, you can easily use Mercurial or Perforce.


From earlier discussions around monorepos, I saw references that Google, Facebook, and other large monorepo orgs have been making use of Mercurial.

Facebook uses Mercurial.

Facebook uses mercurial internally.

Huh? I don’t know about Facebook but Google for sure does not use Mercurial as monorepo backend (nor does it use Git). There are Git and Mercurial-alike clients to interface with the in-house backend which is a Perforce like thing. Neither Git nor Mercurial would be fun to use at Google scale. Dropbox has a much smaller monorepo hence they can clone the whole Git thing on developer machines. I assume doing the same with Mercurial is impractical as no one has patience for something that slow.

Relevant: Facebook migrated from git to hg awhile back.

Here's a blog post on how they are scaling hg for their monolithic repos https://code.facebook.com/posts/218678814984400/scaling-merc...


Mercurial also has bisect, FWIW.

> Lots of support for monorepos – indeed, this is the main reason that Google, Facebook, and Mozilla are all pouring work into hg and are using it.

They are improving mercurial[1], but are they using it ?

[1] https://code.fb.com/core-data/scaling-mercurial-at-facebook/


Mercurial is used at Facebook, but it is heavily customized and goes through Phabricator. Just like Google uses Piper, which is “like Perforce” and goes through Critique.

I should clarify my comment by saying monorepo-related Mercurial improvements benefit not just those monorepos backed by Mercurial, but also where Mercurial is "just" a front end to a different system. I mean just think about it, what does a front end in this case really mean? When you run a command like `hg log` how much of the original Mercurial code are you running? Do you design an entirely different system that happens to share the same command-line syntax as the original Mercurial, or do you emulate the .hg folder format and run the original Mercurial code, or somewhere in between? Thinking about this problem would shed more light on why Google's work on Mercurial benefits everyone else with a big monorepo even though Google is "just" using Mercurial as a front end.

And both Facebook and Google have contributed to Mercurial on this front, though admittedly Facebook did more work than Google did. I know the tree manifest feature (https://www.mercurial-scm.org/wiki/TreeManifestPlan) is done by Google and upstreamed, and it benefits every repo with millions of files. (Just clone the hg repository and search for commits with a google.com author email and see what kind of commits they are.)


Who other than FB albeit customized is using Mercurial in prod?

Wait—there’s a FB fork of Mercurial? Would love to know more about it!

Wow, this is pretty cool. Reminds me of the performance optimizations Facebook has done with Mercurial: https://code.facebook.com/posts/218678814984400/scaling-merc...

Mercurial was designed to be easy to extend, and it shows.


Facebook is still using mercurial last time I heard

And Facebook added a lot to Mercurial so that it would scale to their stupidly enormous code base.

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


Note: this article is from 2014; it would be interesting to see how Mercurial has worked for Facebook since then.

I know, but they don't mention what exactly they are using hg for. Someone (from IRC) said they were using this for some "secret" thing :)

From IRC I know someone has said git didn't scale very well for Facebook.

next

Legal | privacy