Weave 是一种基于语言结构的语义合并驱动,它让 Git 不再按行而是按函数、类等实体进行合并,从而从根本上解决因代码行重叠导致的假冲突。在 31 个跨 7 种语言的合并场景测试中,Weave 实现了 100% 的正确合并,而 Git 原生的行级合并仅有 48%,同类工具 Mergiraf 为 83%。
背景:为什么行级合并频繁误报
Git 的默认合并策略以行为单位:只要两个分支修改的文本行在文件中重叠,无论这些行是否属于同一个逻辑单元,Git 都会标记为冲突。这在实际开发中极为常见——例如两名开发者分别在同一文件的不同函数末尾添加代码,由于函数之间紧挨着,Git 会认为它们“重叠”并报错。开发者不得不手动解决这些本不存在的冲突,消耗大量时间。Weave 使用 tree-sitter 解析代码的抽象语法树,将合并粒度提升到实体级别(函数、类、枚举等)。只有当两个分支修改了同一个函数内部的行时,才会触发冲突;修改不同函数的代码则自动合并,无需人工干预。
影响:多代理协作与真实场景验证
Weave 不仅用于人工合并,还支持多代理工作流:AI 代理在编辑前可“认领”实体,避免同时修改同一段代码。项目通过 Model Context Protocol 与 15 种工具(包括 Claude)集成,可将实体冲突检测前置。测试覆盖 4917 个文件合并,在真实项目中已积累 83 个成功案例,且未发现任何回归问题(C、Python、Go 等语言均无退步)。安装仅需一条 brew install weave 命令,然后运行 weave setup 即可配置为 Git 的合并驱动。对于使用 AI 编码助手的团队,Weave 能显著减少自动合并时的误报,提升协作效率。
编注:信源为项目官方页面,材料覆盖产品原理、对比测试(31 场景、4917 文件)及真实案例,未涉及竞品详细技术路线或大规模社区反馈。