社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

Claude Code 写代码太快,Anthropic 五个月换掉 Git

AINLP • 3 周前 • 81 次点击  

Anthropic 把自家主代码库的 Git 换掉了。

Claude 团队公开了这次迁移:七个人,用五个月做出版本控制系统 Scion、代码评审工具 Antique,连同代码搜索、权限管理等配套,把整个 monorepo 搬了过去。

Anthropic 把原因说得很直白:按人类规模设计的开发基础设施,已经成了 Agent 编程的瓶颈。


压力来自 Claude Code。5 月,公司平均每天合入约 2,500 项代码变更;到 9 月 9 日,单日已经达到 30,401 项。写代码越来越快,拉代码、合并、评审这些日常动作,开始跟不上了。

Anthropic 主代码库的每日合并变更数 蓝色为 Pull requests 橙色为 Antique change requests 黑线为七日平均

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 的 changeset 保存变更文件和内容地址 下方虚线目录树由服务器派生

大量任务还会读同一批代码。Scion 因此在计算节点放了一层共享缓存,再接区域缓存,缺少数据时才向上游取。一个节点上的任务可以复用已经拿到的内容。

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/202197