为什么 Facebook 不使用 Git

主要观点:作者工作于 Graphite,其受 Facebook 内部工具启发,起初不知 Mercurial,后被同事说服采用 Mercurial 并将其模式引入 GitHub,探讨 Facebook 不使用 Git 而采用 Mercurial 的原因及过程。
关键信息:

  • 作者之前工程经验丰富,一直以为 Git 是唯一代码管理工具,后接触 Mercurial。
  • 2021 年同事 Tomas 和 Nick 让作者了解到 Facebook 多用 Mercurial,团队决定将其模式引入 GitHub。
  • Facebook 起初用 Git 但 2012 年遇到规模扩展限制,Git 统计文件过程成为瓶颈,模拟显示基本 Git 命令需 45 分钟以上,联系 Git 维护者未得到合作,建议分片但被拒绝。
  • 考虑过 Perforce 和 Bitkeeper 等替代品,最终选择 Mercurial,因其性能类似且架构更清洁、易于扩展,团队参加阿姆斯特丹 Mercurial 黑客松进一步了解。
  • 迁移过程艰难,团队花数月宣传,映射 Git 和 Mercurial 命令及工作流,让开发者表达担忧,最终成功迁移,Facebook 还为 Mercurial 贡献性能改进。
    重要细节:
  • 2014 年 Facebook 有篇关于在 Facebook 扩展 Mercurial 的博客,提到代码库规模大及 Git 操作慢等问题。
  • Git 维护者最初不配合改进性能,两年后看到 Facebook 对 Mercurial 的贡献后态度改变。
  • 迁移过程中团队注重沟通,避免引发工程师反感,最终顺利完成迁移并产生影响。
阅读 8
0 条评论