Why facebook doesn't use git?
Did you know that Facebook doesn’t use Git?
Its true. This is the story behind it👇
Facebook started with Git in 2004.
But by 2012, Facebook’s codebase had become a massive monorepo.
Basic Git operations were taking too long.
Future Git commands could take up to 45 minutes.
So the Facebook team reached out to Git maintainers:
Can we help you in improving Git?
But the Git team rejected Facebook.
Instead of improving Git, they told Facebook to split up the monorepo.
So a small group of Facebook engineers started looking at other options.
Enter Mercurial.
Mercurial was not like Git.
It did not have Git’s complex architecture.
It was built with Python and designed to be more easily extensible.
When Facebook engineers attended a Mercurial hackathon in Amsterdam, they found a welcoming community open to collaboration.
Mercurial’s maintainers were willing to work with Facebook.
FB engineers loved this.
Thus, Facebook started migrating from Git to Mercurial.
They mapped Git commands to Mercurial equivalents, addressed engineers’ concerns and gradually introduced the new system.
The transition went smoother than expected, with minimal resistance from the engineering team.
The best part?
In the years that followed, Facebook heavily invested in improving Mercurial.
They also developed custom workflows, like “stacked diffs,”.