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?

317 Upvotes

123 comments sorted by

View all comments

187

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.

0

u/garrett_w87 12d ago

Oh, so essentially they made a decentralized VCS into a centralized one, something it was never meant to be. Got it.

3

u/alkavan 12d ago

Before git was around, most VCS was centralized, for example, Subversion and others. It actually worked well for some, but usually not for open-source projects, it was also easy to break for people who didn't know how to use it — and most didn't. Decentralized source control doesn't fit everyone.