Explore the journey of Facebook's transition from Git to Mercurial, uncovering the technical and social dynamics that influenced one of the tech industry's pivotal decisions in source control management. This post delves into the reasons behind Facebook's shift, the challenges of scaling Git, and the pivotal role of community and collaboration in adopting Mercurial
Really good read.
One thing they didn’t cover was why the monorepo is so appealing to facebook
If I had to guess I’d say it’s because fundamentally Facebook development is about deploying servers.
As you move through the main branch, at any commit, you should have something that you can deploy. The moment you split the repo you lose this, and need to worry about keeping multiple repos aligned.
This is from the blogpost it links near the beginning. Also worth a read if you’re interested.
I personally love a monorepo. It has to be managed effectively by the team, but the benefits are great. Most of it boils down to making more effective incentives for maintenance and care for downstream effects because “we all live here”. There are tradeoffs and it’s not for every situation or team though, for certain.