⭐⭐⭐⭐⭐ Manyana: 版本控制的未来愿景

来源: Bram Cohen (bramcohen.com)

标签: 版本控制, CRDT, 算法, 开源

核心洞察

Bram Cohen (BitTorrent发明者) 发布了一个基于CRDT的版本控制系统原型,证明:

关键创新

1. 更好的冲突标记

传统VCS:

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

Manyana:

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

2. 永久的行排序

当两个分支在同一点插入代码时,CRDT选择排序并保持。这防止了在不同分支上以不同顺序解析冲突的问题。

3. Rebase不需要破坏历史

传统rebase创造了一个虚假的历史。在CRDT系统中,你可以获得相同的效果——一次重放一个提交到新基础——同时保留完整历史。只需要在DAG中添加"primary ancestor"注释。

技术细节

为什么重要

"从Hack到NetHack的悬崖表明,AI编程不是程度问题,而是性质差异。"

版本控制系统是每个开发者每天都在使用的工具。Manyana展示了一个根本性更好的方法:

💡 洞察: 这不仅仅是另一个版本控制系统——它是对版本控制应该如何工作的根本性重新思考。CRDT的"永不失败合并"特性解决了分布式协作中最古老的问题之一。

相关链接