Anthropic 把自家主代码库的 Git 换掉了。
Claude 团队公开了这次迁移:七个人,用五个月做出版本控制系统 Scion、代码评审工具 Antique,连同代码搜索、权限管理等配套,把整个 monorepo 搬了过去。
Anthropic 把原因说得很直白:按人类规模设计的开发基础设施,已经成了 Agent 编程的瓶颈。
压力来自 Claude Code。5 月,公司平均每天合入约 2,500 项代码变更;到 9 月 9 日,单日已经达到 30,401 项。写代码越来越快,拉代码、合并、评审这些日常动作,开始跟不上了。
Anthropic 主代码库的每日合并变更数 蓝色为 Pull requests 橙色为 Antique change requests 黑线为七日平均
代码还没开始跑,先等仓库拉下来
Anthropic 的主分支历史接近 100 GB,压缩后的工作副本也超过 25 GB。仅 CI,每天就要做约 2,500 万次代码检出,还没算开发环境、Agent 沙盒和研究任务。
一次下载慢一点,开发者可以等;把同样的开销乘上几千万,就变成了机房里的大事。
他们并非一上来就重造 Git。浅克隆、稀疏检出、内部镜像、预先保存的仓库快照,都用过了。高峰时,内部跑着几百个 Git 镜像。代码变更继续加速,快照离最新主分支越来越远,部分仓库里的历史查询也越来越难维护。
Git 让每份完整克隆都能独立工作。开发者可以在本地看历史、算 diff、查 blame,不必一直连着服务器。
可 Anthropic 的客户端已经换了一批:绝大多数是全天在线的 Agent 和自动化任务,围着同一个权威代码库工作。离线能力仍是 Git 的长处,但给海量任务反复准备本地仓库,成了他们要卸掉的开销。
HumanLayer 的 Dex Horthy 也注意到了这层变化:如果代码会越来越自主、越来越快地被修改,这次源码管理的调整就很容易理解。
只取要用的代码
在 Scion 里,提交、合并、rebase、历史查询都交给服务器。客户端保留有限的本地缓存,只取需要的目录;它还支持虚拟化检出,真正读到文件时再把内容放到磁盘上。
比如,一个 CI 任务只想知道两次提交差了什么,可以直接问 API,不必先养着一份本地仓库。需要跑代码的任务才准备工作副本,也只取自己要用的部分。
提交的保存方式也变了。Scion 用 changeset 记录相对第一个父提交改了哪些文件,再指向按内容哈希保存的文件数据。文件历史、blame 等查询所需的索引,由服务器另外计算。
Scion 的 changeset 保存变更文件和内容地址 下方虚线目录树由服务器派生
大量任务还会读同一批代码。Scion 因此在计算节点放了一层共享缓存,再接区域缓存,缺少数据时才向上游取。一个节点上的任务可以复用已经拿到的内容。
Scion 的代码获取路径 节点缓存和区域缓存复用文件内容 缺失时再向上游请求
按 Anthropic 披露的内部结果,新基础设施的 CPU 和内存需求约为旧 Git 镜像体系的 1/200;CI 和研究任务取代码从分钟级缩到秒级,CI 释放了约 25% 的 CPU 容量。
Git 换了,评审也得一起换
跟着 Scion 一起落地的,还有内部代码评审工具 Antique。
Scion 支持目录级权限,评审工具则能表达更细的批准条件,把仅修改注释的请求与涉及敏感逻辑的修改区分开,让人把注意力放到后者。
合并队列也遇到了新问题:一次测试还没跑完,主分支可能已经又合入几百甚至几千项修改。团队没有照搬全局仓库锁的队列模式,而是加大合并后、部署前的自动化测试投入。并发修改仍可能冲突,这套做法也需要相应的检测和修复能力。
七个人做成,工程师还在管什么
Claude 既制造了这轮压力,也参与了重建。团队用早期内部版本的 Claude Mythos Preview 重写 Git 到 Scion 的导入管线,报告内存消耗降到原来的 1/20,速度提高到四倍。
但有些修改,工程师得拦下来。
迁移过程中,有系统为了查某项变更何时合入主分支,打算线性扫描提交日志;正确的信息已经在代码评审工具里。另一次对抗式评审过分担心内部服务不可信,推动 Claude 加了大量验证和复杂性,最后仍需要人把设计拉回来。
Anthropic 也没有建议所有团队换掉 Git。Scion 面向极大的 monorepo 和高产码量的 Agent 群,连评审、搜索、CI 都要配套迁移;公司的内部 token 投入也不是普通团队愿意承担的规模。
对于还在用 Git 的团队,更容易借鉴的是其中一部分:让服务器直接回答更多仓库问题,让任务按需取文件,让同一节点复用代码。先少搬几遍仓库,未必就要先换一套版本控制系统。
参考链接
-
Redesigning source control at Anthropic:https://www.anthropic.com/engineering/redesigning-source-control

