世界上最流行的软件,抛弃了Git!

fossil源码编译 fossil是一个类似git的版本控制工具,是由SQLite作者写的,代码的水平应该比较高,fossil还提供了web展示的功能,支持http接口,综合性比较强,对于c语言程序员来说也可以初步了解一些前端和后端的知识,比较有学习价值。 1.源码下载 学习代码最好的方式当然是自己编译并调试,我是基于msys2开发环境。 首先到官网下载发布的版本,选择Source Tarball下载 http://w... 阅读详情

世界上使用最流行的软件是什么?

Windows ? Android?  Office ?

都不对!

答案是 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写了一篇文章《Why SQLite Does Not Use Git》,解释了其中的原因,几个要点如下:

1. Git的思维模型过于复杂

Git的复杂性分散了人们对于正在开发软件的注意力,Git用户需要牢记一下所有内容

(1)The working directory

(2)The "index" or staging area

(3)The local head

(4)The local copy of the remote head

(5)The actual remote head

Git提供了很多命令和选项在所有这些位置之间进行文件移动和比较。

相比而言,Fossil只需要考虑他们的工作目录和正在处理的check-in,干扰减少了60%,每个开发人员的大脑周期是有限的,Fossil需要的大脑周期更少,从而可以释放智力资源来专注正在开发的软件。

正如一个使用过Git和Fossil的用户在HackerNews上缩写的:

Fossil让我安心,因为我拥有一切......通过一个命令同步到服务器...... 我从来没有通过Git获得过这种安心。 

2. Git没有提供良好的态势感知能力

当Richard想看看SQLite最近发生了什么情况时,他可以使用Fossil的Timeline功能,在一个屏幕上看到所有更改的摘要,只需几下点击,就可以看到细节信息,甚至用手机也可以,非常方便。

GitHub和GitLab没有提供类似的功能,最接近的是“Network graph”,但是它渲染起来很慢(除非事先有缓存),并且不提供那么多的细节,移动设备上效果更不好。

GitHub的commit视图不错,有详细信息,速度快,可是每次只能提供显示一个分支,无法轻松知道所有最近的更改。 

很多Git用户会使用第三方的Git图形查看器,它们需要单独安装和管理,并且很多是特定平台的(例如仅适用于Mac的GitUp),想用这些图形查看器,首先还得同步本地存储库,很麻烦。 

3. Git 不跟踪历史分支名称

Git保留了commit序列完整的DAG,但branch tag是本地信息,它不会同步,不会保留,这使得查看历史分支变得非常乏味。

Richard用一个分支的例子对比了Git和Fossil,Fossil可以清楚地显示Branch开始的位置,什么时候合并回主干,GitHub则不行,除非使用第三方的工具。

4. Git需要更多的管理支持

Git是个复杂的软件,建立Git服务器并不容易,所以大多数开发人员使用第三方服务如GitHub和GitLab,从而引入额外的依赖项。

相比之下,Fossil是个独立的二进制软件,包含GitHub,GitLab的核心功能,建立一个服务器非常高效,只需几分钟时间就拥有一个带有wiki、错误跟踪和论坛的社区服务器,为用户提供打包下载,登录管理等功能。

Fossil对硬件要求很低,可以在 5 美元/月的 VPS 或 Raspberry Pi 上正常运行。

5.Git提供了糟糕的用户体验

下面这个xkcd 的漫画虽然夸张,但是却切中要害。

说实话,很少人质疑Git提供的用户界面不理想,很多底层的实现都展示在了和用户交互的接口中,交互接口设计很糟糕,有个网站甚至专门生成假的Git帮助手册:https://git-man-page-generator.lokaltog.net/#ZWR1Y2F0ZSQkaGVhZA==

Richard的吐槽挺犀利的,但我能感同身受的只有第一点和最后一点:模型复杂,用户体验差。 

我刚开始接触Git时也有很强的抵触情绪:项目组就这么几个人,为什么要用分布式的系统?搞什么本地仓库,远程仓库,还得记住各种各样烦人的命令...... 

集中式管理SVN它不香吗? 

用得多了,发现有两个好处:

(1) 在本地有个副本,可以自由地修改,并且能提交到本地的代码仓库中,先把版本管理起来,这是很爽的一件事情。等到合适的时候再push,什么事情都不耽误。

(2) Git的分支实在是强,创建分支不像SVN那样得复制目录,很轻量级,新特性开发都可以用分支来搞。

当然,代价就是记住,用熟那些复杂的命令。

Richard是个挺有意思的人,他很喜欢造自己的小工具,喜欢自给自足。

除了SQLite和Fossil之外,他还开发了一个Web服务器althttpd,这是个小巧,简单,安全,低资源占用的Web服务器,现在sqlite.org网站就架在它之上,每天处理50万个Http请求,传输200G的数据。

Richard还开发过一个叫CVSTrac的Bug跟踪系统,也是使用SQLite来存储相关数据。 

所以,Richard对Git的吐槽有为自己产品宣传的成分(至少这篇文章在HackerNews中引发了三次大讨论,赚足了眼球,吸尽了流量),但也真的是自己使用觉得觉得不爽的地方。

SQLite选择了Fossil,那是因为对Richard来说,Fossil足够了,并且在某些功能上更好,更能满足自己的需求。 

就像他使用自家的Althttpd,而不是Apache一样。

但是对于更多的程序员来说,Git和GitHub的生态系统更有效。

这个世界应该是百花齐放的。

全文完,觉得不错的点个赞或者在看吧!

SQLite Fossil版本库 使用Fossil进行版本控制的代码库 通过该库可与SQLite团队进行同步 立即下载

相关推荐

Fossil(Developed by SQLite Team)

Fossil Developed by SQLite Team An open source software for version control and lot of fun factions.

了解一下 Fossil,一个 Git 的替代品 | Linux 中国

Fossil

coffee66666的博客 2348

Spring Boot 构建war 部署到tomcat下无法在Nacos中注册服务

因此,当使用外部容器时,如此处的 Tomcat 来部署项目,AbstractAutoServiceRegistration 就不能监听到容器启动事件了,也就不会尝试向服务注册中心注册当前这个微服务,那么注册就失败了,并且也就没有异常信息了。自定义获取获取外部容器端口的方法, 然后监听应用启动事件,当应用被启动时,获取外部容器启动的端口号,然后将这个 port 设置到 NacosAutoServiceReigistration 中。在启动类同级目录,复制下面代码即可(不需要修改,直接构建war即可)

ttyy1112的专栏 2519

软件开发bug问题跟踪与管理

缺陷跟踪系统允许开发人员团队有效跟踪产品中尚未解决的缺陷、问题、议题、增强和其他变更请求。Redmine 是一个自由开源软件解决方案,它提供集成的项目管理功能、问题跟踪,并为多个版本控制选项的支持。除了 Git 和 Mercurial 等分布式版本控制功能外,Fossil 还支持错误跟踪、维基、论坛、电子邮件提醒、聊天和技术注释。它可用于存储、共享和跟踪具有各种属性、描述、评论和文件附件的问题。它提供了 Subversion 和 Git(或其他版本控制系统) 的接口、集成的 Wiki 和便捷的报告工具。

ejinxian的专栏 1584

5nm制程的CV5芯片实测:用它给无人机做8K拍摄和实时避障,功耗和性能到底怎么样?

本文深度评测了5nm制程的CV5芯片在无人机8K拍摄和实时避障中的表现。通过实测数据展示了CV5的异构计算架构、8K视频编码性能和CVflow®AI引擎的加速效果,同时提供了开发中的优化技巧和散热建议,为无人机开发者提供了实用的参考。

weixin_30861797的博客 358

LVGL实战 透视卡盘

八张卡立在一个圆柱面上,摄像机在柱心前方。每帧对屏幕上的每个像素发一条射线,与卡片所在平面求交,得到三维交点,再投影回卡片自己的二维坐标系取样。透视、倾斜、近大远小、相互遮挡 —— 全部是这一步的副产物。

摸鱼专家 54

清华北大图书馆借阅最多的 40 本书

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。如果我的分享对你有帮助,请关注我,一起向上进击。清华大学和北京大学图书馆借阅次数最多的40本书籍!读书是一种最低廉的成本,却能让我们获得最高级的成长策略。我们无法用脚步丈量的地方,文字却可以带领我们前行;我们无法用眼睛看到的地方,文字却可以带我们探索未知。—- EOF -文章...

codingpy的博客 318

企业 IoT 产品安全渗透测试与欧盟 CRA 合规落地实战指南

欧盟 CRA(网络弹性法案)2026-09-11 漏洞报告义务生效,2027-12-11 全面强制产品安全不再是"加分项",而是市场准入的法律门槛本文面向 IoT 企业安全工程师/运维工程师,讲清楚如何从零建立渗透测试能力,并与 CRA 合规要求对齐落地。不讲空话,全是可执行的步骤。IoT 企业安全工程师、运维工程师负责产品合规的技术人员想从"被动响应"转向"主动安全"的团队[ ] 能独立完成 Web 应用渗透测试并输出报告[ ] 能对 REST/GraphQL API 进行安全评估。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 269

SQLite 的文艺复兴

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !SQLite的故事第一次被SQLite震撼到的一个是关于它的测试代码[1],其源码有15多万行,但测试代码和脚本竟有九千多万行。作者Dwayne Richard Hipp是一个完美主义者,为了能自由的开发SQLite,他编写了底层的存储引擎、Parser[2]、源码托管工具Fossil[3],除了C编译器和一些底层库...

easylife206的专栏 952

宽压 DC⇌DC 也能“随心所欲”——全桥 LLC 混合控制硬核拆解

硬件派 vs. 软件派:多电平是“器件堆砌”,混合控制是“算法魔改”。预算紧 → 先搞软件。仿真别嫌烦:PLECS 把两条曲线扫透,切换点、死区、φ 都调到波形平滑再上板。温升留 20 ℃ 余量:车规≥125 ℃,实验室测 105 ℃ 就算危险,别玩极限。

weixin_43199439的博客 928

【2026年华为暑期实习-非AI方向(通软&嵌软&测试&算法&数据科学)- 7月15日-第二题- 手机多载波冲突选择】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文提出了一种解决手机基站载波选择问题的回溯算法。给定N个载波,每个载波具有带宽和所属频段,要求选择最多K个载波,满足:1) 不选择同一频段的多个载波;2) 不选择冲突频段的载波;3) 总带宽最大化。算法通过预处理冲突关系,使用位掩码优化冲突检查,按编号顺序回溯枚举所有可能组合。当找到更大带宽或相同带宽但字典序更小的组合时更新答案。该方法在N≤25和K≤8的约束下高效可行,并通过样例验证了正确性。输出为最大总带宽和对应的最优载波编号序列。

m0_73659489的博客 71

世界上最流行的软件,抛弃了 Git!

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。如果我的分享对你有帮助,请关注我,一起向上进击。世界上使用最流行的软件是什么?Windows ? Android? Office ?都不对!答案是 SQLite !一个嵌入式数据库。你可能没听说过它,但是它就在你身边的:每一台智能手机中(Android 和iOS),Mac电脑...

codingpy的博客 126

【深度学习】什么是自回归模型?

自回归模型是一种重要的时间序列模型,通过利用过去的值来预测当前或未来的值。它在统计学、经济学、自然语言处理等领域有广泛的应用。自回归模型的简单性和可解释性使其成为许多应用的首选,但在更复杂的情况下,可能需要结合其他模型如移动平均模型(MA模型)或混合模型(如ARIMA)来更好地捕捉时间序列中的模式。扩散模型(Diffusion Model)和自回归模型(Autoregressive Model)是两种不同的生成模型,各自有独特的特点和应用场景。

q742971636的博客 1671

世界上最流行的软件,抛弃了Git

世界上使用最流行的软件是什么?Windows ? Android? Office ?都不对!答案是 SQLite !一个嵌入式数据库。你可能没听说过它,但是它就在你身边的:每一台智能手机中(Android 和iOS),Mac电脑,Windows 10电脑。每一个主要的浏览器中(Chrome, Firefox, Safari)大部分的机顶盒当中每个PHP和Python安装目录中很多流行的桌面应用(...

码农翻身 609

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

世界上最流行的软件,抛弃了Git。

世界上使用最流行的软件是什么?Windows?Android?Office?都不对!答案是 SQLite!一个嵌入式数据库。你可能没听说过它,但是它就在你身边的:每一台智能手机中(Android 和iOS),Mac电脑,Windows 10电脑。每一个主要的浏览器中(Chrome, Firefox, Safari)大部分的机顶盒当中每个PHP和Python安装目录中。

m0_72747613的博客 170

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

世界上最流行的版本控制系统——Git

版本控制系统,也就是VCS(Version Control System),可以说是程序员必备的工具。那么它到底是什么,有什么作用呢? 举个例子,如果你想查看你所开发的软件在一个月之前的模样,同时还想比较之前的代码与现在的代码的差异,又或者你想把代码回退到之前的某个时间点的版本,你会怎么做呢? 如果你不了解VCS的话,也许你已经懵了,好像根本没有办法办到!这个时候你就需要学习一下VCS了,它可以帮...

自学Java闯天下 412

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

世界上最大开源平台,被残酷地抛弃了!

对于年轻程序员来说,SourceForge是一个遥远而模糊的名字了。SourceForge曾经拥有几十万个开源项目,其中一些更是大名鼎鼎:开源办公软件Apache OpenOffice图像处理工具GIMP文件压缩程序7-Zip音频编辑软件Audacity多媒体播放器VLC Media Player传输工具WinSCPFtp工具FileZilla.....可以说是丰富多彩,包罗万象。世界上最大的开...

码农翻身 1510

Git 正在吞噬世界!

自Git诞生以来发生了很多事,但有一件事情很明显:软件正在吞噬这个世界。 作者 |Jan van den Berg 译者 | 弯月,责编 | 郭芮 出品 | 优快云(ID:优快云news) 以下为译文: Git诞生于2005年,差不多是Linux诞生(1991年)和今天(2019年)的正中间。自Git诞生以来发生了很多事,但有一件事情很明显:软件正在吞噬这个世界,而G...

优快云资讯 1945

git--最简单、最流行、最优秀的分布式版本控制工具,没有之一!

GIT 什么是版本管理? 项目在迭代更新的过程中,会产生很多个版本,有时可能需要回到之前的某个版本中,如果单纯用备份的做法来做,在版本多的情况下会非常麻烦且凌乱,为此,我们需要借助专业的工具来帮我们进行版本的管理。而Git就是其中的版本管理工具之一。 版本控制工具介绍 以下是比较主流的版本控制工具。 CVS:老牌的版本控制工具,主要在开源软件管理中使用。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由

气死的笨喵 582

git 回退上一个版本_世界上最流行的版本控制系统Git

版本控制系统,也就是VCS(Version Control System),可以说是程序员必备的工具。那么它到底是什么,有什么作用呢?举个例子,如果你想查看你所开发的软件在一个月之前的模样,同时还想比较之前的代码与现在的代码的差异,又或者你想把代码回退到之前的某个时间点的版本,你会怎么做呢?如果你不了解VCS的话,也许你已经懵了,好像根本没有办法办到!这个时候你就需要学习一下VCS了,它可以帮你解...

weixin_39577964的博客 117

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教! 转 作者:爱编程_ 地址:https://blog.youkuaiyun.com/h8y0bDJVUkwE1LboZlE/article/details/86635415 导读:因为教程详细,所以行文有些长,新手边看边操作效果出乎你的预料。...

JoBo的博客 2万+

史上最浅显易懂的Git教程!

从零起步的Git教程,让你无痛苦上手世界上最流行的分布式版本控制系统Git! 既然号称史上最浅显易懂的Git教程,那这个教程有什么让你怦然心动的特点呢? 首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度; 其次,本教程实用性超强,边学边练,一点也不觉得枯燥。而且,你所学的Git命令是“充分且必要”的,掌握了这些东西,你就可以通过Git轻松地完成你的工作。

廖雪峰的Blog 5万+
上一篇: 十年靠捐款艰难求生,阿根廷的这个软件终于要在全球崛起了!
下一篇: 我真的一行代码都没写啊!都是Cline和华为云的大模型干的!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值