最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

放弃 SVN,苹果 WebKit 迁移到 GitHub

  • 2022-09-02
    北京
  • 本文字数:1301 字

    阅读完需:约 4 分钟

放弃SVN,苹果WebKit迁移到GitHub

版本控制系统 (VCS),又叫修订控制或源控制系统,是一种软件实用程序,用于跟踪和管理对文件系统的更改。几乎所有软件的代码的备份、历史追踪、协同编辑等任务都需要版本控制系统完成。


从最早本地 VCS 系统 RCS、1990 年 CVS、2000 年 SVN(Subversion),到如今开源世界风头正健的 Git,同语言编辑工具一样,SVN、Git 都是程序员的必备利器。近些年,随着 GitHub 的流行,很多软件纷纷转向 Git。


8 月 31 日,苹果 WebKit 项目运营工程师 Jonathan Bedard 发布博文称,在今年 6 月 23 日,WebKit 项目冻结了 Subversion 树,迁移到托管在 GitHub 的 Git 源代码管理系统。


为什么选择 Git?


WebKit 原先使用 Apache 的源代码管理系统 SVN,这次之所以迁移,是因为 WebKit 社区意识到了 Git 分布式特性的重要性和其庞大的社区。


SVN 是集中式的系统,而 Git 的分布式特性使开发人员在项目协作方式方面更加灵活,允许多个组织协作。


“Git 的本地提交消息记录,以及 Git 日志将提交历史限制在存储库的某些部分的能力,意味着大型项目不再需要在每次提交时检查过时的 ChangeLog 文件,” Bedard 说。


而且,WebKit 项目的许多新贡献者更倾向于在 git-svn 镜像上工作,当涉及到现有的工具和工作流程时,这样的转换也被视为理所当然的。


Bedard 进一步表示,“选择托管在 GitHub 是因为它有庞大的 Web 开发者社区,WebKit 项目能与他们密切合作以改进引擎。我们还发现,GitHub 的 API 让我们只需对现有的基础设施进行相对较小的修改,就能建立起先进的预提交和后提交自动化,并提供一个现代且安全的平台来审查和提供有关新代码更改的反馈。”

迁移是好事吗


用户可能会发现苹果此举令人沮丧的是,Git 哈希值并不是自然排序的,所以 WebKit 团队决定在需要分叉的工作流程中使用他们所谓的“提交标识符(commit identifiers)”。WebKit 有一个“零容忍性能退步”政策,这意味着,能够轻松推理出存储库中的提交顺序是至关重要的。


许多开发者都在问为什么这样的迁移需要这么长时间,并不是所有的人都认为这是一个好主意。


“仅在今年,GitHub 就发生了 50 多次故障,而且在追索方面也有糟糕的历史,限制受美国贸易制裁国家的开发者。如果‘WebKit 项目对世界各地的开发者的贡献和反馈感兴趣’,那么切换到 GitHub 是没有意义的。”一位用户在 HackerNews 论坛上评论道。


还有人表示,即使最终项目发展会变成更顺利,但过渡到 Git 的过程也是场噩梦。


但也正如一位用户所说:“鉴于 GitHub 是一个被普遍理解的主机,而且它有人们喜欢的所有 UI/开发集成,所以使用它是有意义的。另外,拥有 GitHub 账户的人似乎越来越多,因此贡献者不必再创建另一个帐户来提供其他服务。”


Git 由 Linus 在 2005 年开发而来,演化至今已经成为了最流行和最先进的开源版本控制工具,不过仍然有很多的公司和团队还在使用 SVN 或者 CVS 对项目进行版本控制,部分公司确实有一些可能合理的原因来维持现状,但是使用 Git 在绝大多数的场景下确实能让我们的开发和合作变得更加高效。


参考链接:

https://webkit.org/blog/13140/webkit-on-github/

https://www.theregister.com/2022/09/01/webkit_migrates/

https://www.infoq.cn/article/ahoxlss6g153hod0y5iz

2022-09-02 15:5410594
用户头像
罗燕珊 InfoQ中文站编辑

发布了 424 篇内容, 共 245.9 次阅读, 收获喜欢 757 次。

关注

评论 2 条评论

发布
用户头像
Linus 才是这个世界上唯一会编写程序的人,其它人都是学习他。
2022-09-05 14:53 · 浙江
回复
用户头像
Linus 才是这个世界上唯一会编写程序的人,其它人都是学习他。
2022-09-05 07:23 · 广东
回复
没有更多了
发现更多内容

5年经验Android程序员面试27天,从理论到实践!

欢喜学安卓

android 程序员 面试 移动开发

10天拿到腾讯Android岗offer,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

裸辞后吊打大厂面试官,四面拿到阿里offer后我还是选择了美团

java小李

tomcat elasticsearch

手撕环形队列

实力程序员

程序员 数据结构

5 分钟,从 0 到 1 上线个人网站!

程序员鱼皮

JavaScript GitHub 大前端 Web 计算机

架构实战营 毕业设计

netspecial

架构实战营

短视频营销获客软件系统开发内容

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

Java 编程 程序员 架构师 计算机

浅谈工业4.0背景下的空中数据端口,无人机 3D 可视化系统的应用

一只数据鲸鱼

无人机 数据可视化 工业4.0 数字孪生 智慧工业

带你探索CPU调度的奥秘

华为云开发者联盟

cpu 操作系统 工作负载 调度器 调度

一图解密百TB数据分析如何跑进45秒 原创

百度Geek说

大数据 后端

肝完这在“牛客网”难倒万人的Java面试题后,已收获9个大厂offer

java小李

Sprint Boot git reset spring cloud alibaba

详解云安全攻防模型,这些攻击战略和战术越早知道越好!

博文视点Broadview

马士兵「研发」对标阿里Java架构师P5—P9成长路线,文档+教程

Java架构追梦

Java 数据库 架构 JVM 多线程与高并发

差之毫厘:etcd 3 完美支持 HTTP 访问?

API7.ai 技术团队

etcd 网关 APISIX

漏桶算法和令牌桶算法,区别到底在哪里?

华仔

漏桶算法 令牌桶算法

系统性能优化-缓存

计算机 计算机缓存

喜报!浪潮云通过可信云多项评估认证并斩获三项大奖

浪潮云

云计算

中国RPA厂商首次入选Gartner RPA魔力象限,背后的意义是什么?

王吉伟频道

AI RPA 机器人流程自动化 Gartner 国产RPA

架构训练营毕业设计

Geek_649372

架构训练营

MEMS加速度计如何选型?

不脱发的程序猿

物联网 传感器 ADI MEMS加速度计 期刊论文

短视频询盘获客系统软件开发价格

Load and preprocess images

毛显新

Python 深度学习 tensorflow 计算机视觉

架构实战营 毕业总结

netspecial

架构实战营

330页PDF,10万字的知识点总结,架构师必备!

欢喜学安卓

android 程序员 面试 移动开发

询盘获客软件系统开发详情

智汇华云 | Wireguard VPN 介绍与使用

华云数据

AI智能获客询盘软件系统开发公司

Vue组件间的传值五大场景,你造吗?

华为云开发者联盟

Vue 组件 传值

初学者入门知识图谱必看的能力:推理

华为云开发者联盟

知识图谱 图谱 推理 知识推理 知识纠错

拒做背锅侠!如何利用网站性能优化驱动产品体验提升

阿里巴巴中间件

云计算 阿里云 云原生 中间件

放弃SVN,苹果WebKit迁移到GitHub_文化 & 方法_罗燕珊_InfoQ精选文章