Theo - t3․gg

Why doesn't Facebook use git?

thumbnail
  • Introduction:
    • Facebook doesn't use Git, and this video explores the reasons behind this decision.
  • Reasons for not using Git:
    • Facebook's large codebase and the need for efficient handling of massive repositories.
    • Git's limitations in handling huge repositories efficiently.
    • Scaling issues with Git in the context of Facebook's requirements.
  • Graphite and Stacked Diffs:
    • Graphite provides a solution for large repositories through "stacked diffs" in Mercurial.
    • Stacked Diffs allow for selective fetching of changesets, enabling more efficient workflows.
    • Mercurial's support for stacked diffs aligns with Facebook's needs better than Git.
  • Comparison with Microsoft and Windows Source:
    • Microsoft faced similar scalability issues with Git before adopting a custom solution for the Windows Source repository.
    • The Windows Source repository showcases the challenges of managing large codebases with Git.
  • Facebook's use of Mercurial:
    • Facebook scaled Mercurial effectively to meet the demands of its massive codebase.
    • Engineering efforts to optimize Mercurial for Facebook's use case.
  • Conclusion:
    • Facebook's decision to use Mercurial over Git was influenced by the need for efficient handling of large repositories and tailored solutions like stacked diffs offered by platforms like Graphite.