昔日的网络浏览器之王Firefox已将其代码库连同其他 2500 个 Mozilla 项目一起迁移至 GitHub,这表明Mozilla 已将 Firefox 浏览器开发的中央存储库移至 GitHub。这并非一次性完成,而是一年多前宣布的版本管理改革的一部分,当时Mozilla宣布其版本管理将从 Mercurial 迁移到 Git。
官方公告可以在Google Docs 的 Git 迁移状态文档中找到。据此,Mozilla 已于 4 月 30 日完成迁移。
将鸡蛋放在微软的篮子里,这本身就是一个讽刺的时代标志。2000 年代后期, Firefox占据了约 30%的用户份额,但随着 Google Chrome 占领网络市场、制造商将移动设备锁定在内部软件上以及Firefox 本身的吸引力下降,其份额逐渐下滑至个位数。
使用 Git 进行持续开发
Mozilla 高级工程经理 Byron “Glob” Jones于 2023 年 11 月宣布了这一举措。在此之前,开发工作主要通过版本管理系统 Mercurial 和 Git 双轨进行。Mercurial 和 Git 都是开源软件。GitHub 是微软于 2018 年收购的 Git 项目管理平台,它并非开源,但许多开源项目都在这里开发。
转向使用 Git 进行统一开发旨在减少使用两个版本管理系统的开销。据 Jones 称,这给一些团队带来了相当大的负担,其中一些团队已经不堪重负。
限制使用
然而,与许多其他项目不同,Firefox 的后续开发并非直接在 GitHub 上进行,而是主要作为代码库的中心位置。4月份发布的迁移状态文档列出了迁移带来的主要变化。目前为止一直使用 Git 开发 Firefox 的开发人员无需更改其工作流程。
在可预见的未来,GitHub 将不会再有 Pull 请求,团队也不会在该平台上收集问题。相反,Mozilla 将继续依赖 Bugzilla、Lando 和 Phabricator 工具进行审查、问题和变更。Mozilla 坚持使用 Phabricator 的事实有些令人惊讶:Phabricator 背后的公司 Phacility 已于 2021 年停止了该项目的工作。Phorge是该项目的一个分支。
搬家时有好伙伴相伴
在 Firefox 出现之前,Java 和 Python 编程语言的后续开发工作就从 Mercurial 转向了 Git。Java 则花费了更长的时间: 2018 年,第一批提出放弃Mercurial 版本管理系统的提案被提出,第二年他们决定使用 Git,又过了两年才最终转向 GitHub。
LLVM 编译器基础架构也于 2019 年迁移至 GitHub。此前,负责人使用 Apache Subversion(SVN)进行版本管理。
Mike Hommey(在 GitHub 上的用户名是 glandium)撰写了一篇详细的非官方 Git 迁移指南。在另一篇博客文章中,他详细阐述了从 Mercurial 迁移到 Git 的原因,以及选择 GitHub 作为平台的原因。