Why doesn't Facebook use git?
Theo - t3․gg・2 minutes read
Facebook decided not to use git due to scaling limits, slow performance, and resistance from git maintainers. The adoption of Mercurial over git at Facebook led to performance improvements, the extension of fabricator, and the creation of stacked diffs for code review parallelization.
Insights
- Facebook's decision not to use git was influenced by the limitations of git's capabilities as their code base grew, resulting in slow performance and scaling issues.
- The choice to adopt Mercurial over git at Facebook was driven by prior experience with Mercurial, emphasizing the importance of familiarity and expertise in selecting the right tools for efficient code management.
Get key ideas from YouTube videos. It’s free
Recent questions
Why did Facebook decide not to use git for version control?
Facebook engineers found that their code base outgrew git's capabilities, leading to slow performance and scaling limits. Basic git commands took over 45 minutes to complete, prompting the exploration of alternatives.
What alternative version control systems were considered by Facebook?
Facebook considered alternatives like Perforce and BitKeeper, but ultimately chose Mercurial for its performance and cleaner architecture. Mercurial, developed in Python using object-oriented patterns, proved to be extensible and efficient.
How did Facebook engineers improve scaling with Mercurial?
Facebook collaborated with Mercurial, leading to significant improvements in scaling. This collaboration prompted Microsoft to contribute to git, showcasing the impact of choosing the right version control system for large code bases.
What challenges did Facebook face when considering extending git for larger monorepos?
Facebook considered extending git to support larger monorepos but faced resistance from git maintainers. Sharding the monorepo was suggested but deemed infeasible, highlighting the complexities of scaling with existing tools.
What key factors influenced Facebook's decision to migrate to Mercurial?
Facebook's internal migration to Mercurial involved months of socializing the change, mapping common commands between git and Mercurial, and advocating for the switch. The commitment to the migration led to performance improvements, extension of fabricator support, and the creation of stacked diffs for code review parallelization.
Related videos
60 Minutes
A young Mark Zuckerberg's early mistake
Yehia Tech يحيى تك
كورس أساسيات رياكت في 90 دقيقة | React.js Basics in 90 Mins (Arabic)
Honeypot
How A Small Team of Developers Created React at Facebook | React.js: The Documentary
JavaScript Mastery
Next.js 14 Full Course 2024 | Build and Deploy a Full Stack App Using the Official React Framework
Theo - t3․gg
The New React Native Architecture