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
Monorepos, performance problems, and a lot of asking
Our code base has grown organically and its internal dependencies are very complex. We could have spent a lot of time making it more modular in a way that would be friendly to a source control tool, but there are a number of benefits to using a single repository. Even at our current scale, we often make large changes throughout our code base, and having a single repository is useful for continuous modernization. Splitting it up would make large, atomic refactorings more difficult. On top of that, the idea that the scaling constraints of our source control system should dictate our code structure just doesn’t sit well with us.
This is from the blogpost it links near the beginning. Also worth a read if you’re interested.
This is from the blogpost it links near the beginning. Also worth a read if you’re interested.