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

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

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

Windows ? Android?  Office ?

都不对!

答案是 SQLite !一个嵌入式数据库。

ea9a87d472873ecb178f94867bcb7756.png

你可能没听说过它,但是它就在你身边的:

每一台智能手机中(Android 和iOS),Mac电脑,Windows 10电脑。

每一个主要的浏览器中(Chrome, Firefox, Safari)

大部分的机顶盒当中

每个PHP和Python安装目录中

很多流行的桌面应用(微信、QQ、 DropBox、 Skype、 iMessage、WhatsApp、 Adobe Acrobat Reader....)

......

不信的话可以在电脑中搜索一下 “*.db”,看看能发现多少个。

SQLite的发明人是Richard Hipp。

a771a0d274abe00dd7409b8dba80da9f.png

Richard不但写了SQLite,他还写了另外一个版本控制软件Fossil。

a3c97b412e689567bef8b7fb5f8b87f6.png

有趣的是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则不行,除非使用第三方的工具。

e2a2e31997ef1202ea36dfbf69663fd2.png

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

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

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

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

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

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

6bbcef5866734be0381f0be065590be6.png

说实话,很少人质疑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的生态系统更有效。

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

相关文章:

d34c06779749691f90a1b50e8f2ce16f.png

【Git版本控制】拉取 + 推送 + 克隆 + 连接 + 修改 + 删除 + 添加 Git配置文件.gitignore用于指定Git应忽略的文件和目录,不纳入版本控制。其核心作用包括排除临时文件、保护敏感信息、减少仓库体积和保持提交历史清晰。工作原理是Git读取项目中的.gitignore文件规则,在git add时自动排除匹配文件。注意事项:文件需提交到仓库,已提交文件需先移除才能忽略,支持多级目录配置和全局规则。 Git命令行操作五步法:1) git init初始化(首次);2) git add添加文件;3) git commit提交修改;4) git push首次推送;5) 后续直接 阅读详情

相关推荐

掌握Git必备:最常用的50个Git命令

本文列举了 Git 中最常用的 50个命令及其解释,希望能帮助读者掌握 Git 的基本操作并提升团队协作效率。Git 是一个强大而灵活的工具,熟练掌握它将成为您编程生涯的利器。欢迎大家留言分享自己常用的 Git 命令和经验,共同学习进步!

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 1万+

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

Fossil

coffee66666的博客 2348

fossil-mirror:测试Fossil DVCS镜像到GitHub的能力

关于化石 Fossil是一种分布式版本控制系统,自2007年以来已广泛使用。Fossil最初旨在支持项目,但也被许多其他项目采用。 Fossil在自我托管。 如果您在GitHub上阅读此书,那么您正在看的是自托管Fossil存储库的Git镜像。 该镜像的目的是测试和行使Fossil导出Git镜像的能力。 除了验证镜像逻辑是否有效之外,没有人使用GitHub镜像。 如果您想了解更多有关Fossil的信息,请访问上面链接的官方自托管网站。

推荐项目:Fossil - 全能的分布式版本控制系统

推荐项目:Fossil - 全能的分布式版本控制系统 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 Fossil 是一款自2007年以来被广泛使用的分布式版本控制系统。它最初是为支持知名的SQLite数据库项目而设计,但其优秀特性和高效管理能力使得它逐渐被众多其他项目所采纳和信赖。Fossil 是完全自我托管的,您可以在其官方网站上找到所有相关信息和最新版本。 项目技...

gitblog_00089的博客 1112

Matlab激活失败?手把手教你解决License checkout failed问题(附详细截图)

本文针对Matlab激活后出现“License checkout failed”错误的常见问题,提供了详细的解决方案。核心在于精准定位并正确填写Windows系统用户名,而非计算机名或账户全名。文章通过分步截图和命令指引,手把手教你使用`whoami`命令获取正确信息,并重新运行激活程序,从根本上解决因用户名填写错误导致的许可检查失败问题。

weixin_29062823的博客 574

Oracle到金仓数据库信创改造迁移实施规划方案

**性能测试和优化**:对金仓数据库的性能进行测试,根据业务负载情况进行必要的调优,确保系统能够稳定高效运行。- **数据兼容性**:评估Oracle数据库中的数据结构和金仓数据库的兼容性,明确需要重构的数据模型。- **性能测试**:通过对金仓数据库的性能测试,预估在实际业务环境下的表现,是否能达到业务需求。- **工具选择**:选择适合的迁移工具,如金仓数据库提供的迁移工具,能够提升迁移效率和准确性。- **全面迁移**:在初步迁移成功后,进行全面数据迁移,确保所有数据完整迁移到金仓数据库上。

hdrhdrjdididrr的博客 480

爬取豆瓣网评论最多的书籍

相信很多人都有书荒的时候,想要找到一本合适的书籍确实不容易,所以这次利用刚学习到的知识爬取豆瓣网的各类书籍,传送门https://book.douban.com/tag/?view=cloud。 首先是这个程序的结构,html_downloader是html下载器,html_outputer是导出到Excel表,html_parser是解析页面,make_wordcloud是制作词云,spide...

weixin_30909575的博客 269

解决Cursor AI工具地域限制报错的方法与原理

地理围栏(GEO-fencing)是现代云服务常用的访问控制技术,通过IP地址库匹配、支付系统验证等方式实现区域限制。在AI编程工具领域,这种技术常导致类似Cursor出现的'unsupported country region'报错。从技术实现看,服务商会综合HTTP头信息、时区设置等多维度数据进行地理位置判断。开发者可通过调整网络出口、配置本地模型或使用企业版等方案解决。本文以Cursor为例,详细分析了AI工具地域限制的底层原理,并提供了包括Ollama本地部署在内的多种工程实践方案,特别适合需要稳定

weixin_30820077的博客 957

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

相比之下,Fossil是个独立的二进制软件,包含GitHub,GitLab的核心功能,建立一个服务器非常高效,只需几分钟时间就拥有一个带有wiki、错误跟踪和论坛的社区服务器,为用户提供打包下载,登录管理等功能。相比而言,Fossil只需要考虑他们的工作目录和正在处理的check-in,干扰减少了60%,每个开发人员的大脑周期是有限的,Fossil需要的大脑周期更少,从而可以释放智力资源来专注正在开发的软件。

码农翻身 1042

Stata实战入门:从数据导入到基础分析的全流程指南

本文提供了Stata实战入门的全流程指南,从数据导入、清洗到基础分析和可视化,帮助初学者快速掌握Stata的核心功能。通过详细的步骤和实用技巧,读者可以高效完成数据处理、变量操作、描述性统计和回归分析等任务,提升数据分析效率。

weixin_28327051的博客 384

时空数据建模的跨节点联邦图神经网络:KDD21 Cross-Node Federated Graph Neural Network for Spatio-Temporal Data Modeling

前言 联邦学习(FL)虽然已经被广泛研究,但是对复杂的时空依赖关系进行建模以提高预测能力仍然是一个开放的问题。此外目前最优的时空预测模型假定对数据的访问不受限制,忽略了对数据共享的限制。基于此,本文提了一个基于图联邦学习的时空数据模型 Cross-Node Federated Graph Neural Network (CNFGNN),该模型在跨节点联邦学习的约束下,使用基于图神经网络(GNN)的架构对底层图结构进行编码,属于结构化联邦的一种,每个本地模型利用私有数据进行学习,并保持分散性。CNFGNN

qq_56027260的博客 1810

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

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

m0_72747613的博客 170

cesium 气象云(体积云)

本文介绍了基于Cesium的气象云渲染技术方案,其核心是通过GPU加速的光线投射算法实现气象云的三维可视化。方案采用分层架构设计:GPU计算层由顶点着色器和片段着色器组成,负责光线投射计算、3D纹理采样和颜色映射;CPU控制层处理数据预处理、纹理创建和参数配置。关键技术包括:顶点着色器计算相机位置和光线方向,片段着色器实现光线步进采样、颜色映射和半透明混合。该方案高效解决了气象数据与地理场景的融合问题,支持云图、温度场等复杂三维气象数据的实时渲染,具有高真实感和良好性能。

God's asylum的博客 1204

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

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

codingpy的博客 126

SAP会计凭证导入ABAP开发模板+注意点—附带源码

开发并不仅仅只要考虑实现的功能,只实现功能的是程序,考虑到使用场景的是工程。使用bapi校验创建会计凭证的数据,报错和参数和正式创建一致。用途,防止产生错误的凭证,即使财务凭证可以冲销。正式创建会计凭证。隐藏的坑。

小九啥也不会 1232

零基础快速学习 ABAP 读者意见反馈和下一步写作计划表

大家在学习教程过程中,如果有任何关于 SAP ABAP 开发方面想了解的内容,可以直接在教程各篇文章下评论留言,我会将大家的意见统一汇总到下面的表格,作为我更新教程的内容参考来源之一。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4273

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

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

自学Java闯天下 412

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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

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

weixin_39577964的博客 117

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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 的前世今生从 BitKeeper 到全世界最流行的分布式版本控制系统

本文将带你回顾 Git 的起源与发展历程:从 Linux 内核团队使用的专有 DVCS BitKeeper,到 Linus Torvalds 独立研发出 Git,其设计目标如何影响了现代软件开发,以及 Git 如何一路成长为开源界的“事实标准”。

hello.reader 1315

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

码农翻身 1510

可能是历史上最伟大的一次 Git 代码提交

Git 是一个分布式版本控制系统,缔造者是大名鼎鼎的林纳斯·托瓦茲 (Linus Torvalds),Git 最初的目的是为了能更好的管理 Linux 内核源码。 PS:为了能够帮助更多的 Java 爱好者,已将《Java 程序员进阶之路》开源到了 GitHub(本篇已收录)。该专栏目前已经收获了 715 枚星标,如果你也喜欢这个专栏,觉得有帮助的话,可以去点个 star,这样也方便以后进行更系统化的学习: https://github.com/itwanger/toBeBetterJavaer 每天看着

沉默王二 2万+

2021年最流行的10款VSCode扩展

【优快云 编者按】由于扩展可以很大程度提高开发的效率,VisualStudio Code 俨然成为开发者社区最流行的一款编辑器。本文就为大家介绍下 2021 年最流行的 10 款Vis...

优快云资讯 7772

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

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

气死的笨喵 582

Git 正在吞噬世界!

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

优快云资讯 1945

当代最流行的软件开发方法及其领导者分析

在当今这个快速发展的时代,敏捷开发、CI/CD和DevOps等方法因其高效性和灵活性而成为行业标准。领导这些领域的公司,如Scrum.org、Jenkins、AWS和Azure,通过提供工具、服务和认证,极大地推动了这些方法的普及和实施。随着技术的不断进步和市场需求的变化,这些方法和领导者可能会继续发展,以适应新的挑战和机遇。随着技术的不断进步和市场需求的变化,某些软件开发方法因其高效性、灵活性和适应性而变得极为流行。当前最流行的软件开发方法强调的是速度、效率和客户满意度。

十年运维开发经验的王义杰在此分享自己的知识和经验 584

取消项目git_Git 正在吞噬世界

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

weixin_36035466的博客 115
上一篇: 公司新成立了PMO,是管项目经理的吗?
下一篇: 12位专家联袂推荐这本书,今天免费送,包邮到家!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值