Redian新闻
>
Firefox 宣布将完全拥抱 Git,放弃 Mercurial

Firefox 宣布将完全拥抱 Git,放弃 Mercurial

公众号新闻

推荐关注↓

转自:CSDN(ID:CSDNnews)

“同时支持两个版本控制系统的压力真的太大了”,在 Mozilla 团队发出这样的感慨之际,其负责工作流程和发布管理的高级工程经理 Byron “Glob” Jones 在 firefox-dev 邮件列表中发帖正式宣布:

Firefox 浏览器的主存储库将从 Mercurial 迁移到 Git。

Mercurial vs Git 

事实上,很长一段时间以来,Firefox 桌面开发一直支持 Mercurial 和 Git 用户

作为两种不同的分布式版本控制系统(DVCS),Mercurial(通常称为 HG)与 Git 有相似之处,都允许开发者在本地克隆存储库、进行提交、创建分支和合并等操作,而不需要与中央服务器保持持续连接。这使得开发者可以在没有网络连接的情况下继续工作,并且可以更灵活地进行协作。

同时,二者也各有千秋,如:

  • 在数据模型方面,Git 使用快照(snapshot)模型,它在每次提交时记录文件的完整快照,这些快照被组织成树状结构的提交历史;Mercurial 则使用增量(changeset)模型,它在每次提交时记录文件的更改集合,以便从一个版本转换到另一个版本。

  • 在分支模型维度,Git 的分支非常轻量,它使用引用(references)来表示分支,可以很容易地创建、合并和删除分支;而 Mercurial 的分支更重一些,每个分支通常有自己的命名分支头,分支之间不会像 Git 那样轻松合并,通常需要执行显式的合并操作。

  • 命令行工具上,Git 和 Mercurial 都有自己的一组命令行工具,用于执行版本控制操作。这些命令在两者之间有些不同,因此需要学习不同的命令语法和工作流程。

  • 性能上,Git 通常被认为要优于 Mercurial,尤其是在处理大型存储库和执行某些操作(如切换分支)时;而 Mercurial 在某些情况下可能更慢,尤其是在大型存储库中执行某些操作时。

此前,Mercurial 作为管理 Linux 内核源代码的替代工具,常被开发者拿来应对 BitKeeper 免费版本停止支持的情况。不过,后来随着 Linux 之父 Linus Torvald 在消失了一个周末带来了 Git 这个小工具之后,Git 主要就被用于 Linux 内核,而 Mercurial 在其他地方变得流行。

然而,同时维护 Mercurial 和 Git 系统,这种双重 SCM 的要求给已经捉襟见肘的 Firefox 团队带来了沉重的负担。因此他们才做下了放弃 Mercurial 的决定。

迁移方法

按照 Byron “Glob” Jones 在邮件列表中提出的方案,Firefox 团队将分两个阶段完成迁移,其一是面向开发者,其二是后端基础设计的逐步迁移。

第一阶段——面向开发人员

Firefox 团队将把主要存储库从 Mercurial 切换到 Git,同时在开发人员的工作站上取消对 Mercurial 的支持。在这一点上,贡献者只需要在本地使用 Git,并继续使用 moz-phab 提交补丁进行审阅。

所有更改将会提交到 Git 存储库,然后单向同步到 Firefox 现有的 Mercurial 基础设施中。

第二阶段——基础设施

各团队将致力于将基于 Mercurial 的基础设施逐步迁移到 Git。这将分阶段进行,而不是一次性完成。

到此阶段结束时,Firefox 团队将完全取消对 Mercurial 的支持。

当前将 Firefox 主存储库从 Mercurial 迁移到 Git 还处于规划阶段,预计这一举措“在迁移开始之前至少需要六个月”。

最后,Byron “Glob” Jones 也承诺道,“ 我们将继续使用 Bugzilla、moz-phab、Phabricator 和 Lando。尽管我们将在 GitHub 上托管存储库,但我们的贡献工作流将保持不变,目前不接受 Pull 请求。

不受欢迎的 Mercurial 正被逐渐放弃

无独有偶,早在 2019 年,知名代码托管平台 BitBucket 便宣布同样的措施,即从 2020 年 2 月 1 日起,用户创建新仓库时不能用 Mercurial;2020 年6 月 1 日起,全站不再支持 Mercurial 功能,移除所有 Mercurial 仓库。

对于这样做的原因,当时 BitBucket 也给出了解释:

  • 一方面,同时支持 Mercurial 与 Git 两个版本控制系统意味着分散关注点,导致交付时间和技术开销翻倍。

  • 另一方面,由于 Git 是更广泛使用的工具,Mercurial 在扩展时可能存在被忽视的风险。根据 Stack Overflow 开发人员调查,近 90% 的开发人员使用 Git,而 Mercurial 是最不受欢迎的版本控制系统,只有约 3% 的开发人员采用。事实上,Bitbucket 上的 Mercurial 使用量正在稳步下降,而选择 Mercurial 的新 Bitbucket 用户比例已下降至不到 1%。Bitbucket 希望通过放弃 Mercurial 来更加专注地为用户构建最佳体验。

不同的使用体验

在不少开发者看来,现如今 Firefox 全面拥抱 Git,无疑再次证明了 Mercurial 的没落,不过,也给很多开发者带来一丝遗憾。

来自 HN 上的用户 @mark_undoio 评价道:

看到又有一个坚持使用 Mercurial 的人转向 Git,感到有点伤感。后者在网络效应方面领先得多,但我一直更喜欢 Mercurial。我本可以更多地使用它,但是——网络效应的问题,即我所在进行的项目使用了 Git。

主要问题在于,Mercurial 的思维模型符合我的思路,命令行界面是可预测且一贯的,同时这个工具仍然适用于大型代码库。我发现 Git 要求我在使用过程中的不可预测时刻考虑其实现细节和内部术语。它仍然能完成工作,但感觉就像在工作中不时地做随机的验证码。

@sedatk 表示:

我完全同意 Mercurial 卓越的易用性和更简单的思维模型。然而,感觉很被遗弃。我不知道是什么原因造成的。在我看来,它是 Git 的一个完全可行的替代方案。

@cardanome 认为:

在 GitHub 上“全力以赴”意味着让自己依赖于每天都可能改变其条件的 Microsoft 服务。Firefox 依靠谷歌的资金生存已经够糟糕的了,我不明白他们为什么要放弃更多的自由来依赖微软。

你从那些只会因为你在 Github 上而做出贡献的人那里得到的那种省力的贡献无论如何都不是你需要或想要的。

另外,如果他们想要替代方案,Gitlab 无论如何都更适合合作。

与此同时,也有一些开发者发表了不同的看法,如 @klodolph 表示:

当我在工作中使用 Mercurial 时,感觉那些奇怪的小工作流程都被锁在插件后面,让人感到超现实。我明白 Mercurial 对于初学者来说要容易得多,我也明白我可以使用插件,但当我使用 Git 时,所有这些重写历史的工具都恰好在我需要的地方。

最后,你是否使用过 Mercurial 或者 Git,又有什么样的使用体验?欢迎分享你的心得体会。

参考:

https://news.ycombinator.com/item?id=38160161

https://groups.google.com/a/mozilla.org/g/firefox-dev/c/QnfydsDj48o

https://devclass.com/2023/11/07/mozilla-will-move-firefox-development-from-mercurial-to-microsofts-github/

https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket


- EOF -

推荐阅读  点击标题可跳转

1、马斯克硬核迁移服务器

2、中国数学老师在P站教微积分年入百万

3、放弃亚马逊、谷歌!!!

4、监控员工微信聊天记录,方法还这么多!


关注「程序员的那些事」加星标,不错过圈内事

点赞和在看就是最大的支持❤️

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
硬核观察 #1235 虽然 Firefox 市场份额继续下滑,但其 CEO 在涨薪A Food Courier’s Pursuit of Equal Treatment重磅消息!8大道法拉盛众多华人赚钱生计,或将完全放开限制!曾打败 IE 的 Firefox,正处于崩溃边缘!辽宁舰大修即将完成,将变身战斗舰!最近两年,放眼亚太没有对手Firefox Android版扩展支持即将推出NeurIPS 2023 | MixFormerV2:基于Transformer的高效跟踪器[歪解] customer service representative23 岁博士生,修复 Firefox 中长达 22 年的 “幽灵老 Bug ”咨询24暑假实习内推|beBit+accenture+Mercer等众多名企内推名额来啦!末日预兆?幼发拉底河竟干涸了 恐2040年将完全干枯23岁博士生修复Firefox中的22年 “幽灵老Bug”突发!BC提前零排放 这年起将完全淘汰新汽油车选择题:DUKE vs. GIT(州外学费), CS专业小说:兰欣与乌茶 31Hebei: Man Held for Defrauding Millions Meant for Sick ChildrenAnti-Consumerism Advocate Encourages Rethinking Life’s PleasuresFirefox 118 版本发布,带来了原生的翻译功能 | Linux 中国Firefox 117 版本增加自动翻译功能支持 | Linux 中国[评测]GALAX 20th Anniversary GeForce RTX 4090 评测[评测]GALAX GeForce RTX 4090 MetalTop AIO OC歼20第二次换发后,将完全压制F-22现在,使用 Mozilla Firefox 的理由又增加了一条! | Linux 中国一百二十五 退学NeurIPS 2023 | MCUFormer: 可在内存有限微控制器上部署的Vison Transformer模型首专发布:Kloxii 与自己跳舞,拥抱无常,也拥抱他人AmEx Refer Jail (AmEx refer 功能突然消失)现象及解决方案【更新:恢复了!】准备熬夜加班?curl&libcurl 高危漏洞明日公布NeurIPS 2023 | 结合脉冲神经网络和Transformer的纯加法Transformer《有你真好》&《千年一梦》读王朔议鲁迅 这是法,但是戏法一百二十六 父亲来校火狐浏览器 Firefox 121 版本将尝试默认启用 Wayland 显示协议Mozilla Firefox开发将完全转向Git,放弃MercurialDeadly School Stampede Renews Calls For Scheduling ReformAmEx refer 功能突然消失现象及解决方案【更新:大部分卡恢复refer了,但Gold/BCE又不行了】
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。