Lore、Git 与 Perforce 对比 (GPT-5.5)
🤖 本文由 GPT-5.5 生成
开源状态与仓库链接
| 工具 | 是否开源 | GitHub 仓库 |
|---|---|---|
| Lore | 是,MIT License | https://github.com/EpicGames/lore |
| Git | 是,GPL-2.0 License | https://github.com/git/git |
| Perforce / Helix Core | Helix Core 本体不是开源项目,是商业闭源产品 | 无对应的核心开源 GitHub 仓库;Perforce 的部分周边工具可见于 https://github.com/perforce |
背景
Lore 是 Epic Games 开源的新一代版本控制系统,定位是面向大规模团队和大规模二进制资产的中心化 VCS。它目前仍处于 pre-1.0 / 0.x 阶段,接口、协议和磁盘格式仍可能变化。
Git 是当前最主流的分布式版本控制系统,特别适合源码、开源协作、CI/CD 和代码评审生态。
Perforce 通常指 Perforce Helix Core,是游戏、影视和大型企业场景里常见的中心化版本控制系统,尤其适合大型二进制资产、文件锁和强中心化管理。
一句话概括:
- Git 是源码协作之王,分布式,文本代码生态最强。
- Perforce 是大型游戏资产协作的老牌方案,中心化,二进制和锁流程成熟。
- Lore 是 Epic 新开的 VCS,试图结合 Git 的内容寻址、Perforce 的中心化资产协作,以及现代云存储、分片和稀疏工作区。
三者核心对比
| 维度 | Git | Perforce / Helix Core | Lore |
|---|---|---|---|
| 核心定位 | 分布式源码版本控制 | 中心化企业级版本控制,强资产管理 | 中心化、二进制优先、开放的新一代 VCS |
| 典型用户 | 开源项目、互联网团队、代码仓库 | 游戏、影视、嵌入式、大型企业 | Epic / UEFN / 游戏资产类场景,仍在 0.x |
| 架构 | 每个 clone 都有完整或近完整历史 | 服务端是唯一事实来源 | 服务端是事实来源,但强调本地离线能力 |
| 大文件 | 原生较弱,通常依赖 Git LFS | 原生较强,适合大二进制 | 原生设计目标,按 fragment / chunk 存储 |
| 二进制资产 | 二等公民 | 一等公民 | 一等公民 |
| 文件锁 | Git 本身较弱,Git LFS 有 lock | 成熟核心能力 | 有锁能力,但可扩展强制锁仍在推进 |
| 分支 | 轻量、强大、便宜 | stream / branch 模型更重、更中心化 | 轻量 branch pointer,类似 Git,但存在 mutable store |
| 离线工作 | 很强,本地提交、分支、历史都可用 | 较弱,很多操作需要服务端 | 普通编辑、提交、分支可离线,最终 sync / push 到中心 |
| 稀疏工作区 | sparse checkout / partial clone 可用但复杂 | workspace / client view 成熟 | sparse / lazy hydration 是核心设计目标 |
| 权限 | Git 本体较弱,主要靠平台实现 | 中心化权限成熟,可做路径级控制 | partition / link 设计上内建多租户和访问边界 |
| 存储模型 | object database,blob / tree / commit | 服务端 depot,文本 delta,二进制通常完整或服务端优化 | BLAKE3 内容寻址 + chunk / fragments + mutable store |
| 开放性 | Git 本体开源,生态极强 | 商业闭源产品为主 | MIT 开源,目标是开放格式、协议和 API |
| 生态成熟度 | 极成熟 | 游戏和企业场景成熟 | 较早期,pre-1.0 |
| 最适合 | 代码、开源协作、CI/CD、review 生态 | 大型二进制资产和强中心化制作流程 | 未来的大型资产仓库、开放可扩展游戏生产流水线 |
Git 的特点
Git 的核心模型是分布式。每个 clone 都是一个完整或近完整的仓库副本,开发者可以在本地完成提交、分支、合并、查看历史和 bisect 等操作,网络主要用于 fetch 和 push。
Git 的优势:
- 本地能力极强,离线体验好。
- 分支和合并非常轻量。
- 生态极成熟,GitHub、GitLab、Gerrit、CI/CD、代码搜索和 review 工具都围绕 Git 建设。
- 对文本代码和开源协作非常友好。
Git 的弱点:
- 大型二进制文件不是原生一等公民。
- 通常需要 Git LFS 管理大文件。
- 文件锁不是 Git 核心能力。
- 稀疏 checkout 和 partial clone 虽然可用,但组合体验复杂。
- Git 本身没有完整的多租户、路径权限和服务端治理模型,这些通常由平台补齐。
Perforce 的特点
Perforce Helix Core 是中心化 VCS。服务端是事实来源,客户端 workspace 是服务端 depot 的一个视图。团队通常通过 sync、checkout/open、submit changelist 等流程协作。
Perforce 在游戏行业重要,是因为游戏项目的版本控制问题和普通代码项目不一样:
- 资产文件很大,例如贴图、模型、动画、音频、地图、关卡和
.uasset。 - 很多二进制文件不能像代码一样自动 merge。
- 美术、策划、技术美术和程序可能都在同一个工程里协作。
- 经常需要文件锁,避免多人同时修改不可合并资产。
- 仓库可能非常大,不适合每个人拉全量历史。
- 公司需要中心化权限、审计、备份和强管控。
Perforce 的优势:
- 大型二进制资产协作成熟。
- 文件锁和中心化工作流成熟。
- 权限、审计和服务端治理能力强。
- 在 Unreal、大型游戏和影视制作流水线里有长期实践。
Perforce 的弱点:
- 商业闭源产品为主。
- 协议和实现不可完全控制。
- 很多日常操作依赖服务端,离线体验不如 Git。
- 存储模型不是现代内容寻址系统。
- 分支和协作体验通常不如 Git 灵活。
Lore 的特点
Lore 是 Epic Games 开源的新 VCS,目标是服务大型游戏和娱乐项目中的源码与二进制资产混合仓库。
Lore 的核心设计:
- 中心化服务端是事实来源,用于权限、审计、持久化和冲突协调。
- 内容寻址,底层使用 BLAKE3 hash。
- repository state 表示为 Merkle tree。
- revision 形成不可变 revision graph。
- 大文件通过 FastCDC 或固定大小策略切成 fragments。
- 工作区可以稀疏 materialize,只在需要时按需 hydration。
- storage subsystem 和 version control subsystem 分层,服务端、传输、SDK 都是一等公民。
Lore 相对 Git 的不同:
- Git 是分布式,Lore 是中心化。
- Git 的大文件通常依赖 LFS,Lore 把 chunked binary storage 放进底层。
- Git 的权限和多租户主要靠平台,Lore 把 partition 和访问边界纳入设计。
- Git 的服务端更像 object 协议端点,Lore 的 server、cache、replica、mutable store、hooks 都是一等组件。
Lore 相对 Perforce 想解决的问题:
- 用开放源码和开放协议替代闭源系统。
- 用内容寻址、BLAKE3、fragment 去重和 lazy fetch 替代传统服务端 depot 思路。
- 保留中心化治理,但提升本地离线能力。
- 让大二进制资产成为底层原生能力,而不是外挂。
- 支持更现代的云后端、缓存、复制和 SDK 集成。
Git LFS 与 Lore 的区别
Git LFS 是 Git 体系里的外挂。Git 仓库里保存 pointer file,大文件实际存放在 LFS server。它解决的是“不要把大文件直接塞进 Git object database”的问题,但没有改变 Git 的核心模型。
Lore 的设计更底层:
- 文件内容被切成 fragments。
- fragment 内容寻址并可去重。
- 修改大文件中间一小段时,理论上只影响附近 chunk。
- 可以做 byte range 读取,不必 materialize 整个文件。
- sparse / lazy fetch 是底层模型,不是外接 filter / smudge 流程。
所以对于大型 binary repo,Lore 的目标比 Git + LFS 更根本。
如何选型
普通代码项目,优先选 Git。生态、平台、招聘、CI/CD、review 和工具链都围绕 Git。
大型游戏项目,尤其是 Unreal 项目,且今天要稳定生产,Perforce 仍然是现实选择。它老,但成熟,行业实践充分。
大型资产项目,如果想探索开放替代、愿意承受 0.x 阶段风险,可以关注 Lore。它方向很清晰,尤其适合 Epic 自己的 UEFN / Unreal 生态,但目前不能按 Git 或 Perforce 的成熟度来预期。
更直白地说:
- Git 是代码世界的默认基础设施。
- Perforce 是大型游戏资产生产的传统基础设施。
- Lore 是 Epic 想重新定义大型资产生产基础设施的开源新方案。