Ataraxy-Labs/weave

Entity-level git merge driver. Resolves false conflicts git invents when independent agents edit the same file. ~95% reduction vs. line-based merge.

weave – Git을 위한 엔티티 수준 의미론적 병합

그것이 무엇인가

  • Git의 줄 단위 병합을 함수, 클래스, JSON 키 및 기타 언어 엔티티에서 작동하는 의미론적 병합으로 대체하는 Rust 기반 도구입니다. tree-sitter로 파일의 세 버전(base、ours、theirs)을 파싱하고, 이름/범위로 엔티티를 매칭하여 지능적으로 병합합니다。

왜 중요한가

  • 여러 AI 代理(或开发者)编辑同一文件时,Git 经常标记冲突,即使更改是独立的(例如,两个新函数并排添加)。weave 自动解决这些虚假冲突,让代理无需人工干预即可继续。

主要特性

  • 实体级三方合并 – 作用于函数、类、对象键等,支持 38 种语言。
  • 确定性且无状态 – 给定相同的三个修订版本,它总是产生相同的结果,类似于 git merge-file。
  • 冲突上下文 – 当发生真实冲突时,标记包含实体名称、类型和简短的“refused_by”原因,使手动解决更容易。
  • weave land – 一个命令,验证合并后的树,可选地运行自定义解析器,并仅暂存通过结构检查的文件(PROVEN、VERIFIED、REFUSED)。
  • 与 Git 和 Jujutsu 集成 – 提供 weave-driver 合并驱动程序和 weave setup 命令,自动写入必要的 .gitattributes 规则。
  • 基于 CRDT 的协调层(单独的 weave-crdt crate)用于在更改进入 Git 之前进行实时多代理编辑。
  • 基准测试和测试 – 441 个单元/集成测试,以及广泛的基准测试套件,与 Git 和 Mergiraf 在真实世界仓库(git、Flask、CPython、Go、TypeScript)上进行比较。

安装

# Homebrew (macOS / Linux)
brew install weave

# 从源码安装(需要 Rust 工具链)
git clone https://github.com/Ataraxy-Labs/weave
cd weave
cargo install --path crates/weave-cli      # `weave` 命令
cargo install --path crates/weave-driver   # Git 调用的驱动程序

典型工作流程

  1. 运行 weave setup(或 --global、--local、--off)为所有支持的文件类型安装合并驱动程序。
  2. 像往常一样合并:git merge <branch>。
  3. 如果 weave 产生冲突标记,使用 weave explain <file> 获取详细的实体级信息。
  4. 编辑后,运行 weave check 验证树。
  5. 使用 weave land(可选提供自定义解析器)完成并暂存已解析的文件。

生态系统和相关项目

  • sem – 语义版本控制。
  • inspect – 语义代码审查。
  • opensessions – 用于编码代理的 tmux 侧边栏。
  • weave-crdt – 用于实时多代理协作的 CRDT 层(提到但不属于此仓库)。

成熟度

  • 最新稳定版本 0.5.3(截至 2026 年 9 月)。
  • CI 在 Linux 和 Windows 上运行;所有测试通过(441+ 测试)。
  • 在数千个真实合并提交上进行了基准测试,并发布了结果。

许可证

  • 双许可:MIT OR Apache-2.0。

结论 weave 是一个生产就绪、开源的解决方案,用于减少多个自动化代理(或开发者)编辑同一文件的代码库中的虚假合并冲突。通过在语言实体级别而不是原始行级别进行合并,它让团队更快地交付更改,并减少手动干预。

관련

  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트
  • Dispatch