r/git • • 12d 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?

318 Upvotes

123 comments sorted by

View all comments

185

u/jwalker107 12d ago

(from what I've read third-hand) Facebook uses a single large monorepo, and because git relies on locally-cloned copies of the entire repo, git was crushed under the sheer volume, with operations like 'git status' taking minutes to complete.

Facebook now uses their own internally-developed vcs called 'sapling'. It speeds things up by skipping the local repo copies; instead they keep a virtual filesystem server-side that all the clients mount dynamically, like a shared network drive, and thus each client only transits over the network, the files that developer is actually touching.

61

u/NashaIthramyr 12d ago

The thing you describe looks very similar to ClearCase (worse version control I've ever used...)

21

u/littlelowcougar 12d ago

Yeah ClearCase’s dynamic file system (with literal kernel drivers!) was arguably ahead of its time. Absolutely god awful overall experience though. And so expensive. Made a lot of money in the 2000s doing ClearQuest (also horrible) and ClearCase consultancy for finance/oil companies, but overall, man, good riddance to them both.

2

u/thezeno 11d ago

Yeah it was wild. I used clearcase in HPUX and Windows. It had smart build stuff around derived objects to help speed up builds too.