世界上最流行的软件是什么?
窗户?安卓 ?办公室 ?
他们没有一个是对的!
答案是 SQLite!嵌入式数据库。
你可能没有听说过,但它就在你身边:
每部智能手机(Android 和 iOS)、Mac 电脑、Windows 10 电脑。
在每个主要浏览器中(Chrome、Firefox、Safari)
大多数机顶盒
在每个 PHP 和 Python 安装目录中
许多流行的桌面应用程序(微信、QQ、DropBox、Skype、iMessage、WhatsApp、Adobe Acrobat Reader...)
...
不信的话,你可以在电脑上搜索“*.db”,看看能找到多少个。
SQLite 的发明者是 Richard Hipp。
Richard不仅写了SQLite,他还写了另一个版本控制软件Fossil。
有趣的是,SQLite 项目使用 Fossil 进行版本控制。
Fossil 使用 SQLite 来存储内容。
这有点像先有鸡还是先有蛋的问题。
我们不仅要问:既然Git是源代码管理系统中最流行的软件,为什么SQLite不使用Git而是开始一个新的呢?
Richard写了一篇文章《为什么SQLite不使用Git》,解释了原因。几个关键点如下:
1.Git的心智模型过于复杂
Git 的复杂性分散了人们对正在开发的软件的注意力,Git 用户需要牢记一切
(1)工作目录
(2)“索引”或暂存区
(3)地方负责人
(4)远程头的本地副本
(5)实际遥控头
Git 提供了许多命令和选项来在所有这些位置之间移动和比较文件。
相比之下软件版本控制工具,Fossil 只需要考虑其工作目录和正在处理的签入,减少了 60% 的干扰。每个开发者的大脑周期都是有限的,而Fossil需要的大脑周期更少,从而释放了智力。资源集中于正在开发的软件。
正如一位使用过 Git 和 Fossil 的用户在 HackerNews 上的缩写:
Fossil 让我高枕无忧,因为我可以将所有内容...通过一个命令同步到服务器...我从来没有在使用 Git 时感到如此安心。
2. Git 没有提供良好的态势感知能力
当 Richard 想了解 SQLite 最近发生了什么时,他可以使用 Fossil 的时间轴功能在一个屏幕上查看所有更改的摘要软件版本控制工具,只需点击几下即可获得详细信息,甚至可以在手机上进行。 ,非常方便。
GitHub 和 GitLab 不提供类似的功能,最接近的是“网络图”,但渲染速度很慢(除非事先缓存),不提供那么多细节,并且在移动设备上运行不佳。
GitHub 的提交视图不错,信息详细,速度快,但一次只能显示一个分支,无法轻松了解所有最近的更改。
许多 Git 用户使用第三方 Git 图形查看器,这些查看器需要单独安装和管理,并且许多是特定于平台的(例如仅适用于 Mac 的 GitUp)。如果要使用这些图形查看器,必须首先同步本地存储库。 ,很麻烦。
3. Git不跟踪历史分支名称
Git保留了提交序列的完整DAG,但分支标签是本地信息,没有同步或保留,这使得查看历史分支非常繁琐。
Richard 使用了一个分支示例来比较 Git 和 Fossil。 Fossil可以清楚地显示分支从哪里开始以及何时合并回主干,但GitHub不能,除非使用第三方工具。