加入弃用 Mercurial 浪潮PyPy 宣布成功迁移到 Git、GitHub

时间: 2024-08-15 04:38:46 |   作者: 兆瓦级风电变浆滑环

详情

  继 之后,PyPy 社区也宣布放弃 Mercurial 分布式版本控制系统而是选择将 PyPy 规范存储库和问题迁移到 GitHub 上()。跟着时间的推移,弃用 Mercurial 呼声与行动愈发高涨。

  作为一种非常兼容的 Python 解释器,PyPy 成为 CPython 快速且功能强大的替代品,深受开发者的欢迎。

  现如今之所以选择将存储库迁移到 GitHub,PyPy 社区给了出了详细地解释:

  Mercurial 是一个更好的版本控制系统,命名分支模型和用户界面都很出色。但原有的存储库地址)在 Google、Bing、duckduckgo 等搜索引擎中的索引不够完善,因此用户发现在项目中搜索问题更加困难。

  由于 Heptapod 已加强其垃圾邮件控制,PyPy 社区收到报告称,用户创建问题只是为了将它们标记为垃圾邮件。

  开源已经成为 GitHub 的代名词,而 PyPy 规模太小了,无法改变这一点。

  当前社区所做的许多开发都是未解决用户遇到的问题。如果所有的代码都在同一个平台上,那么跟踪联锁问题会更容易。

  FAQ 提出了两个反对迁移的论点。GitHub Notes 解决了第一个观点的许多问题:查找提交来源的困难,尽管并非完全解决。但主体问题在于第二点,事实上不迁移到 GitHub 会阻碍贡献和问题报告。

  希望接着使用 Mercurial 的人能够正常的使用下面的方法推送到 GitHub。

  在此,PyPy 团队也在博客上分享了具体的迁移方法,希望对想要将自家存储库从 Mercurial 迁移到 GitHub 的开发者带来一些参考。

  该团队使用了 git-remote-hg 的一个分支来创建一个本地 Git 存储库,其中包含所有的变更集。然后,PyPy 开发者 Matti 表示,想为每个提交添加一个 Git 注释,注明它来自哪个分支。

  将这两者结合起来,PyPy 团队能够最终靠它们的数字索引循环遍历所有提交,以准备这一个文件。然后,该团队迭代文件中的每一行,并添加 Git 注释。由于 git note add 命令在当前 HEAD 上操作,其需要依次检出每个提交,然后添加注释:

  PyPy 几乎有 500 个开放的分支。代码迁移创建了所有分支的 HEAD,但 git push --all 并没有将它们推送。PyPy 开发团队需要检出它们并逐个推送。因此,其创建了一个包含所有分支名称的文件。

  请注意,迁移时分支被命名为 branches/XXX,而不是 branch/XXX。这会导致合并请求的迁移出现混淆,稍后会详细介绍。

  与此同时,该团队还使用了来自 node-gitlab-2-github()的解决方案,它几乎完美地运行。

  重要的是在私人存储库上进行转换,否则每次成功映射用户名称的提及都会通知用户有关转移。对于像 PyPy 这样具有 600 个合并请求和超过 4000 个问题的存储库来说,这可能相当烦人。问题迁移没问题:脚本正确保留了问题编号。然而,该脚本不会将 Mercurial hash 转换为 Git hash,因此注释中的哈希将显示为没有指向提交的链接。合并请求则更为复杂:

  Mercurial 命名分支一旦合并就会“消失”,因此对已合并分支的合并请求在 Git 中找不到目标分支名称。转换会创建一个带有标签 gitlab merge request 的问题。

  由于某一些原因,由 git-remote-hg 创建的分支被称为 branches/XXX,而不是 GitLab 期望的 branch/XXX。这搞乱了合并请求/PR的转换。对于一些分支(打开的 PR 和主目标分支),该开发团队手动创建了额外的不带 es 的分支。最终结果是,打开的合并请求变成了打开的 PR,已合并的合并请求变成了问题,而关闭但未合并的合并请求未被迁移。

  PyPy 已经从 Bitbucket 迁移到 Heptapod 一次。许多问题反映了多次迁移:它们在第一次迁移中包含诸如“最初在 Bitbucket 上由 XXX 创建”的行,和来自此次迁移的额外行“在 Heptapod 上”。

  虽然 GitHub 上的仓库已经上线,PyPy 团队表示还有一些事情需要做:

  文档需要更新以适应新的仓库,readthedocs 的构建自动化也需要调整。

  为了保持对 Git 新提交的跟踪分支,该团队还启用了 Julian 创建的 github action,将 Git 分支注释添加到每个提交中。

  一些合并请求没有被迁移。如果有人愿意的话,他们能够在解决分支命名问题后进行迁移。

  提出改进迁移的建议:PyPy 社区是否遗漏了什么或者能做到更好的地方?

  特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

  日本机构预测:最高死亡或超32万人! 日本多地已开设至少139处避难所

  重庆17岁中专生在四川一工厂实习因压力过大自杀?校方:非实习压力引发,警方已介入

  英国首相与伊朗总统通话,要求伊朗不要攻击以色列,伊总统回应:有权“对侵略者采取惩罚性回应”

  新消费日报 今年我国快递业务量已突破1000亿;问界新M7汽车年度累计交付突破13万台;东南亚电子商务平台Lazada实现盈利……

  教育资讯播报 高途推出途途朗读,已覆盖 50 万所学校;小度全屋智能线家,覆盖一至五线城市

  全红婵老家涌入大量游客并形成“小吃一条街”,当地:打扰不大,每天会做卫生并巡逻

  江西武功山景区一游客玩漂流时不幸遇难,死者母亲称漂流过程中突遇涨水,女儿女婿1死1伤