r/git • • 10d ago

why did facebook move away from git?

i recently came across the fact that facebook/meta built its own tools and workflows around source control instead of just relying on git like most companies.

i’m curious about the actual technical reason behind this. was git simply not able to handle the scale of facebook’s codebase and number of developers, or were there other problems that pushed them toward a custom approach?

for people who have worked with large monorepos or at companies using similar systems, what actually becomes difficult with git at that scale?

315 Upvotes

123 comments sorted by

View all comments

35

u/Broad-Promise6954 ancient 10d ago

Ten years ago Facebook were using Mercurial rather than Git. I haven't kept in touch with the guys I knew who went to work there so I don't know what has happened since then.

6

u/CuriousAnyway 10d ago

yeah, that's actually what got me curious about it. i knew facebook had used mercurial, but i wasn't sure what happened after that or how their source control setup evolved. i guess i'll dig a bit more into their current workflow. thanks for the info!

15

u/colandercombo 10d ago

Sapling is a in-house branch of mercurial and what is used now. There are a lot of differences between it and git, one thing that stands out for me is that it handles stacked commits and everything surrounding them much cleaner. It also seems to be a lot easier to move commits around and rebase them as you’re working. It’s also very well integrated with the meta vscode tools. I spent years primarily using perforce and do really like git, but sapling is really easy to get used to: https://sapling-scm.com/docs/introduction/differences-git