project
Scion - Anthropic 推出的源代码版本控制系统,替代 Git
Scion是Anthropic自研的版本控制系统,用于替代Git管理其巨型单体仓库。原因是Claude生成代码量4个月暴涨12倍,日均合并从2500次到3万次,Git基础设施基本无...
Scion是什么
Scion是Anthropic自研的版本控制系统,用于替代Git管理其巨型单体仓库。原因是Claude生成代码量4个月暴涨12倍,日均合并从2500次到3万次,Git基础设施基本无法应对。Scion针对智能体永远在线重新设计,客户端按需向服务器取数,提交、合并全在服务端完成,支持全水平扩展与稀疏检出。迁移后资源占用降为Git方案的1/200,检出提速两个数量级。
Scion的主要功能
-
变更集(changeset)替代 commit:用预写式日志条目记录相对父级的文件变更列表,服务器端创建、即时全局可用,无需打包、加锁或移动引用。
-
派生数据机制:基于变更集递归构建 blame、路径历史、提交图跳表等索引,可热插拔新数据类型,支持即时或延迟计算,客户端无感知。
-
全 API 化的源码控制服务:diff、merge base、blame 等查询全部通过 RPC 暴露,CI 和工具无需维护本地仓库副本。
-
分层缓存检出架构:scion-daemon(节点级)→ scion-cache(区域级)→ scion-server(权威层)逐级缓存,各层命中率超 99%,检出从几分钟缩到几秒。
-
稀疏/虚拟化检出:客户端只拉取请求目录的文件,按需实例化,文件内容只在实际读取时付费。
-
细粒度权限控制:支持仓库级和目录级访问控制,配合 Antique 评审工具实现语义化的审批约束。
-
提交低成本、增量、无锁:创建提交的成本与变更大小而非仓库大小成正比,引用更新仅为单条 Spanner 记录的原子操作。
如何使用Scion
Scion 是 Anthropic 内部系统,未公开发布,外部用户无法下载或部署。
Scion的核心优势
-
资源占用极低:CPU 和内存占用仅为原 Git 镜像基础设施的 1/200。
-
检出速度提升两个数量级:CI 和研究任务检出代码从几分钟缩短到几秒。
-
显著节省算力:仅 CI 一项就释放出 25% 的 CPU 容量。
-
缓存效率极高:每层缓存命中率超 99%,且无需长期状态,扩容简单。
-
提交吞吐极高:无 packfile、无锁、无跨服务协同,可高吞吐接收变更集,支撑日均 3 万次合并。
-
免本地仓库:所有源码控制查询通过 API 提供,CI 和工具不再需要维护本地副本。
-
全水平扩展:无仓库完整实例、无全局状态瓶颈,每个组件可独立扩容。
-
维护成本近零:无 packfile 概念,客户端和缓存都不需要做仓库维护。
-
细粒度安全:支持目录级权限控制和语义化审批约束,敏感代码可在大仓库内得到保护。
Scion的项目地址
- 项目官网:https://www.anthropic.com/engineering/redesigning-source-control
Scion的同类竞品对比
| 对比维度 | Scion(Anthropic) | Git |
|---|---|---|
| 设计前提 | 客户端永远在线,几乎全是 AI 智能体和自动化任务 | 客户端面向人类开发者,可离线工作 |
| 仓库副本 | 客户端无完整副本,本地仅有界缓存,按需取数 | 每个克隆都是完整的自包含仓库 |
| 提交方式 | 服务端创建提交、合并、变基,无需 push,无锁 | 本地提交后推送,推送涉及加锁与协商 |
| 工作单元 | 变更集(changeset),存相对父级的文件变更列表 | commit,存指向完整代码树的指针 |
| 查询能力 | blame、diff、祖先关系等全部经 API 暴露,免本地仓库 | 查询依赖本地仓库计算或厂商专有 API |
| 扩展方式 | 全水平扩展,无完整仓库实例,组件独立扩容 | 垂直扩展为主,巨型仓库需数百镜像横向硬扛 |
| 稀疏检出 | 协议核心能力:稀疏 + 虚拟化检出,按实际读取付费 | 支持稀疏检出,但需与浅克隆等能力复杂组合 |
| 缓存架构 | 三层分层缓存(daemon→cache→server),命中率超 99% | 无服务端缓存概念,客户端自行持有对象 |
| 仓库维护 | 无 packfile 概念,客户端与缓存均无需维护仓库 | 需定期 gc、打包等仓库维护操作 |
| 权限模型 | 仓库级 + 目录级访问控制,语义化审批约束 | 无内置目录级权限,依赖托管平台实现 |
| 离线能力 | 不支持,客户端必须在线 | 完整支持,离线可提交、查历史、切分支 |
Scion的应用场景
-
AI 智能体高频提交代码:智能体完成编码任务后直接通过 API 在服务端创建变更集,无需维护本地仓库,支撑日均数万次合并。
-
CI 大规模免检出运行:CI 作业直接调用 RPC 获取 diff、blame、merge base,甚至免检出执行写入,每天数千万次检出不再成为瓶颈。
-
大型单体仓库的多团队协作:数万工程师共享同一仓库时,稀疏检出让每个人只拉取自己负责的目录,目录级权限保护敏感代码。
-
自动化运维与回归定位:自动化 bisect 和 revert 流水线通过程序化接口查询提交祖先关系,大规模回滚有问题的变更。