2005 年 4 月, Linus Torvalds 为了给 Linux 内核开发弄个版本控制系统,用了 10 天功夫,开发出了 Git。
![]()
他应该想不到,这个本来是为 Linux 内部所用的软件,竟然伴随着 GitHub 的崛起,风卷残云一般席卷了全球。
他更想不到,20 年后,这个为人设计的软件,有一天竟然被 AI 疯狂使用,最后被AI 巨头 Anthropic 给抛弃了!
01
Git 出了什么问题?
当年Linus 为了照顾全球各地的内核开发者,把 Git 设计成了分布式的版本控制系统:每个人都可以clone一份完整的Linux源码,然后想去哪儿“浪”去哪儿“浪”。
在飞机上,火车上,在偏僻的小岛上......即使是没有网络,你都可以打开笔记本里的 Linux 源码,舒舒服服地编程。
等到有网络了,把改动 Push 给其他人。
这套设计让 Git 获得了极大的灵活性,也成为它成功的重要原因。
但是到了 Anthropic ,这个设计反而遇到麻烦了,因为写代码的不再是人了,而是大量的 AI Agent ,它们不会到处“浪”,而是永运在机房里,永运在线。
这些 Agent 运行在一个个沙箱里,任务结束,环境就可能被销毁,检出的代码也随着消失。
下一个任务启动,又要准备新的环境,检出代码。
![]()
还有很多 Agent 任务只需要少量文件,甚至只需要查询历史、比较差异,把一个仓库全部下载到自己的沙箱里有点儿得不偿失。
对于一个只有几百 MB 的仓库,这算不上什么大问题,无非是多clone几次而已。
但是 Anthropic 的代码仓库量实在是太大,还是个单体仓库,主分支就达到了 100 GB !
更要命的是,这个仓库的代码量还在疯狂地增长,每天合并的代码变更从5月的 2500 次,暴涨至 9月的30000次:
![]()
Anthropic 每天仅 CI 就要进行约 2500 万次代码检出,还没算开发环境、Agent 沙箱和研究任务。
如果每次都按完整仓库的规模获取数据,理论流量将超过 600 PB/天,这就太吓人了。
Anthropic 必须得想招儿,不能每次都从零开始下载。
他们尝试过 Git 浅克隆、稀疏检出、内部 Git 镜像、仓库快照等优化方案,甚至在高峰期运行了数百个内部 Git 镜像。
![]()
但随着主仓库越来越大,代码合并速度越来越快,这套基础设施也开始吃不消了。
仓库快照刚准备好,主分支可能又前进了一大截,为了追上最新代码,就得不断刷新快照。
与此同时,稀疏检出和部分克隆虽然减少了下载量,却让依赖历史信息的 diff、blame 等操作变得更加麻烦。
Anthropic 逐渐发现,光靠给 Git 打补丁,已经越来越难满足这种规模的开发需求了。
02
抛弃Git
之前我给大家分享过 Facebook 和 Google 的故事,它们都是坚持单一代码仓库(Monorepo)的策略,发展到最后,都搞出了自家的版本控制系统。
Facebook 的叫Sapling (服务器端是Mononoke),Google 家的叫 Piper。
(参见文章:《》)
Anthropic 一看,它们能搞,我也能,何况我还有这么强的 Claude。
于是,Anthropic 找了 7 个人,借鉴了 Sapling 和 Mononoke 的设计,准备造个新轮子,名字叫做 Scion (后裔,继承人)。
Scion 的核心思路很简单:既然绝大多数任务都在线运行,客户端为什么非得保存一整份完整仓库呢?
在 Git 里,客户端通常拥有完整的仓库数据,可以自己查询历史、比较差异,也可以离线工作。
Scion 则把更多工作交给服务器,客户端需要什么,就按需获取什么。
需要查询历史、比较差异,甚至执行某些版本管理操作时,也可以直接调用服务器 API,不必先把整个仓库下载到本地。
比如,CI 任务只是想知道两个版本之间改了哪些文件,直接向服务器查询就行。如果任务确实需要运行代码,再获取所需的目录和文件。
但是这些还远远不够,因为 AI Agent 检出代码的次数实在太多,于是 Sicon 搞了一个三级缓存:
![]()
100 个 CI 任务需要读取同一个文件,如果每个任务都从远端仓库独立获取数据,就会产生大量重复传输。Scion 先检查节点级缓存,没有,再检查区域级缓存,都没有,才向后端请求。
在 Claude 的深度参与下,经过 5 个月,团队完成了 Scion 的开发,并把 Anthropic 的主代码仓库从 Git 迁移了过去。
最终的结果相当不错:
缓存命中率在各层都超过 99%
基础设施的 CPU 和内存开销相比原来的 Git 镜像系统减少约 200 倍!
CI 和研究任务的代码检出快了 100 倍,典型任务的耗时从分钟级降至秒级。
03
不知道 Linus 看到 Scion 会有什么感想? Git 非常适合分布式、离线工作的那些特性,竟然严重妨碍了 Anthropic 随着代码仓库不断增长而扩展规模的能力。
不过,Scion 是专门为 “AI Agent 高频自动写代码 + 巨型单体仓库” 的场景量身定制的,像 Anthropic 这样,大规模使用 AI 编程的公司恐怕还不多。
对于大部分人来说,Git 没有过时,依然是最正确的选择。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.