代码控制系统 Scion 及代码审查工具 Antique有什么特点对比Git更好吗?
回复 Erfan: 直接给结论:Scion 和 Antique 并不是在通用场景下比 Git 更好,而是 Anthropic 在 10 月 13 日刚公开的内部基建——专门用来解决“ca 疯狂写代码导致 Git 彻底扛不住”的超大规模单体仓库(Monorepo)定制方案。官方明确表示这套东西不开源,也不适合普通团队拿来替代 Git。 具体看它解决了什么真问题,以及背后的工程取舍: 1. 为什么 Git 在 ca 规模下会崩 Git 的底层假设是“人类开发者分布式、可离线工作”,每个节点都得维护完整或较重的对象图,靠打包文件(packfile)同步。但 Anthropic 内部从今年 5 月日均合并 2500 次暴涨到了 9 月的日均 3 万次以上,主分支历史近 100GB,CI 和 ca 沙箱每天要执行 2500 万次代码检出(如果不做优化相当于每天 600PB 流量)。当使用代码库的主力变成“永远在线、瞬时拉起又销毁的 ca 和 CI 任务”时,Git 为离线设计的特性反而成了最大累赘。 2. Scion 对比 Git 的核心改变(借鉴了 Google Piper 和 Meta Sapling) 第一,砍掉离线能力,变成“极薄客户端 + 全 API 化服务端”。在 Scion 里,提交、rebase、合并、查历史(blame)全部在服务端完成,客户端不存完整仓库,连很多 CI 和工具任务都不需要检出(checkout)本地代码,直接调服务端 API 拿 diff 或提交改动。必须落盘时也默认走稀疏和虚拟化检出,配合节点守护进程和区域内存缓存(命中率超 99%),只按需拉取缺失的文件块。结果是检出速度从分钟级降到秒级,基础设施的 CPU 和内存开销比之前维护几百个 Git 镜像缩小了 200 倍。 第二,用无锁 Changeset(变更集)和衍生数据(Derived Data)替代 Git Commit 树。Git 提交要算完整目录树并打包,而 Scion 每次提交只往预写日志里记“相对于父节点改了哪些文件”以及对应的云存储指针,写入耗时只跟本次改动大小有关,跟仓库总大小脱钩,也不需要全局锁。至于查某行代码是谁改的、提交图祖先关系这类慢查询,服务端会在后台把它们当成“衍生数据”(比如跳表和专用索引)递归算好存进 Spanner。 第三,原生支持目录级权限(IAM)。Git 的权限是仓库级的,单体仓库想保护核心代码非常痛苦;Scion 从底层做了目录级访问控制,不用拆仓库就能隔离敏感代码。 3. Antique(配套代码审查工具)的特点 第一,语义级审批分流。日均 3 万次合并靠人眼逐行看根本不现实,Antique 支持复杂的语义级审批约束,能识别并区分“仅修改注释等低风险改动”和“敏感逻辑改动”,让人类工程师只盯真正高风险的架构意图。 第二,颠覆传统的合并队列(Merge Queue)。在几百上千个 ca 同时提交的吞吐量下,传统那种“全局加锁、排队跑完 CI 再合入主干”的合并队列根本转不动。他们在 Antique 工作流里弱化了合并前全局锁,转而重仓“合并后、部署前”的自动化测试;并发合入产生的代码冲突直接交给 Claude 在后台自动修复,比人类发现冲突的速度还快。 4. 对比 Git 到底谁更好 对 99.9% 的公司、开源项目和个人开发者来说,Git 依然更好——免费、去中心化、可离线、生态极其成熟。 Scion 和 Antique 只有在“几万名工程师或成群的 ca 全天候往同一个百 GB 级单体仓库高频灌代码,且公司有钱烧分布式数据库(Spanner)和海量 token”的极端前提下才比 Git 强。不过它指出了一个很重要的行业风向:随着 ca 普及,写代码不再是瓶颈,合代码和跑 CI 才是瓶颈,未来 GitHub 等平台大概率也会借鉴这种思路,把更多计算和按需检出能力收拢到服务端 API 上。