版本控制 CRDT ★★★★★

Manyana: 版本控制的未来

Bram Cohen · 2026-03-22 · Lobsters

核心发现

Bram Cohen(BitTorrent发明者)发布了一个基于CRDT的版本控制系统原型Manyana,提出了版本控制未来的连贯愿景。

关键洞察:传统Git冲突只是显示两个模糊代码块,而Manyana显示"谁做了什么",让冲突可以被理解而非猜测。

CRDT带来的变革

  • 合并永不失败:CRDT最终一致性保证无论分支以何种顺序合并,结果总是相同的
  • 冲突是信息性的:冲突不再阻塞合并,而是作为审查提示
  • 历史保存在结构中:使用"weave"结构,包含文件的每行历史和元数据
  • Rebase不破坏历史:可以保留完整历史的同时实现rebase效果

对比示例

传统Git冲突:

<<<<<<< HEAD
=======
def calculate(x):
    a = x * 2
    logger.debug(f"a={a}")
    b = a + 1
    return b
>>>>>>> branch

Manyana冲突:

<<<<<<< begin deleted left
def calculate(x):
======= begin added right
    logger.debug(f"a={a}")
======= begin deleted left
    b = a + 1
    return b
>>>>>>> end conflict

项目状态

  • 约470行Python代码
  • 仅操作单个文件的概念验证
  • 尚未实现cherry-picking和本地撤销
  • 代码使用公共领域(Public Domain)授权
  • 完整设计文档在GitHub README中

← 返回索引