将代码库索引为依赖、调用链与执行流程的知识图谱,并通过 MCP 工具供 AI 编程助手调用。
Ataraxy-Labs/weave
基于实体(函数、类、键)而非行的 Git 合并驱动,避免独立修改被误判为冲突。
- Star
- 1,351
- Fork
- 49
- 未关闭 Issue
- 2
- 最近提交
- 3天前
这是什么?
Weave 用基于实体的三方合并替代 Git 按行的合并。它通过 tree-sitter 解析 base、ours、theirs 三个版本的文件,按名称、类型和作用域匹配函数、类和键,再逐个实体合并。不同实体的改动会自动解决,只有同一实体出现不兼容修改时才会冲突。
这一设计主要针对多个 AI 智能体或开发者同时修改同一文件的场景。当两个分支在相邻位置各自新增不同函数时,Git 仍会报告冲突,而 Weave 能正确合并。通过 `weave setup` 即可将其注册为 Git 合并驱动,无法自动解决的冲突会附带实体级别的上下文,例如某一侧修改了函数而另一侧将其删除。
项目还提供 `weave land` 用于校验和发布智能体的合并结果,`weave check` 与 `weave explain` 用于检查冲突解决,并附带面向智能体框架的 MCP 服务,以及 Jujutsu 配置。支持约 38 种语言,对不支持的语言或超大文件则回退到 Git 的按行合并。
核心功能
- 01将函数、类和键作为实体合并,同一文件中的独立新增不会产生冲突。
- 02借助 tree-sitter 语法解析约 38 种语言,包括 TypeScript、Python、Go、Rust 和 JSON。
- 03冲突信息包含实体类型,以及哪一侧修改或删除了该实体。
- 04通过 `weave setup` 注册为 Git 合并驱动,可全局或按仓库配置。
- 05提供 `weave check`、`weave explain` 和 `weave preview`,便于在提交前检查合并结果。
- 06附带 MCP 服务,智能体框架可调用其合并、编辑和检查工具。
适用场景
- 让多个 AI 编程智能体在同一源文件上并行工作,减少人工解决冲突。
- 在多人修改同一大型模块或配置文件时,减少 Git 误报的合并冲突。
- 在自动化智能体合并发布到分支之前,增加结构化校验环节。
快速上手
- 1
安装 weave(详见 README 的 Install 部分)
- 2
在仓库中启用 weave,使 git 合并使用它
weave setup - 3
执行合并;真正的冲突会以标记形式出现,并附带 refused_by 说明
git merge <branch> - 4
对照合并阶段验证你解决冲突后的工作区
weave check
使用前须知
- 实体级合并在某些情况下会产生普通 Git 可以干净合并的冲突,其自身基准测试显示多个仓库存在此类回归。
- Vue、Svelte、ERB 和 Haskell 文件被 weave 有意不予合并,会回退到其他处理方式。
- 项目目前处于 0.5.x 版本,其合并判定在不同版本之间有所变化。
收录于专题
标签
常见问题
- weave 是什么?
- 基于实体(函数、类、键)而非行的 Git 合并驱动,避免独立修改被误判为冲突。 Weave 用基于实体的三方合并替代 Git 按行的合并。它通过 tree-sitter 解析 base、ours、theirs 三个版本的文件,按名称、类型和作用域匹配函数、类和键,再逐个实体合并。不同实体的改动会自动解决,只有同一实体出现不兼容修改时才会冲突。
- weave 可以免费使用吗?用的什么许可证?
- weave 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- weave 还在维护吗?
- 活跃维护中。weave 最近一次提交是在 2026年11月4日。
- weave 适合用来做什么?
- 让多个 AI 编程智能体在同一源文件上并行工作,减少人工解决冲突。 在多人修改同一大型模块或配置文件时,减少 Git 误报的合并冲突。 在自动化智能体合并发布到分支之前,增加结构化校验环节。
- weave 怎么安装和运行?
- 安装 weave(详见 README 的 Install 部分) 在仓库中启用 weave,使 git 合并使用它: weave setup 执行合并;真正的冲突会以标记形式出现,并附带 refused_by 说明: git merge <branch> 对照合并阶段验证你解决冲突后的工作区: weave check
- 在哪里获取 weave?
- 源代码和安装说明在 GitHub 上:https://github.com/Ataraxy-Labs/weave
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
本地代码智能引擎,将多个代码仓库索引为知识图谱,通过 CLI、MCP 服务与 API 提供给 AI 编程助手和 IDE。
一个 MCP 服务器,将代码、文档与基础设施索引为本地知识图谱,让 AI 编程代理查询结构而非反复读取文件。
自托管的代码上下文工具,统一索引多个代码托管平台的仓库,供开发者和 AI 智能体搜索与浏览。
一个零依赖的 C++23 命令行工具和 MCP 服务器,为编程代理提供排序后的代码地图,并检查修改的影响范围、需运行的测试和质量退化。
Jujutsu(jj)是兼容 Git 的版本控制系统,工作副本改动自动记为提交,并记录所有操作以便撤销。