Repolode
Ataraxy-Labs

Ataraxy-Labs/weave

関数・クラス・キー単位でコードをマージし、独立した編集による不要な競合を防ぐ、エンティティ単位のGitマージドライバーです。

スター
1,352
フォーク
49
未解決の Issue
2
最終コミット
15 時間前

これは何?

Weaveは、Gitの行単位の三者マージをエンティティ単位のマージに置き換えます。tree-sitterでファイルのbase、ours、theirsの各バージョンを解析し、名前・型・スコープを基準に各バージョン間で関数、クラス、キーを対応付けてマージします。異なるエンティティへの変更は自動的に解決され、同じエンティティへの変更が競合するのは、本当に両立しない場合に限られます。

複数のAIエージェントや開発者が同じファイルを同時に編集する場面で、この問題は特に顕著になります。2つのブランチで別々の関数を隣接して追加しただけでも、実際には変更が衝突していないのにGitは競合を報告します。Weaveは`weave setup`でマージドライバーとして設定でき、解決できない競合は、たとえば一方で関数が変更され、もう一方で削除されたといったエンティティ単位の情報とともに出力されます。

このプロジェクトには、エージェントのマージをチェックして公開する`weave land`、解決結果を確認する`weave check`と`weave explain`、エージェントフレームワーク向けのMCPサーバー、Jujutsuの設定も含まれています。約38言語に対応し、非対応のファイルや非常に大きなファイルではGitの行単位マージにフォールバックします。

主な機能

  • 01関数、クラス、キーをエンティティとしてマージするため、1つのファイルへの独立した追加が競合しません。
  • 02tree-sitterの文法を使って、TypeScript、Python、Go、Rust、JSONなど約38言語を解析します。
  • 03エンティティの種類や、どちら側で変更・削除されたかなど、エンティティ単位の情報を付けて競合を報告します。
  • 04`weave setup`で、Gitのマージドライバーとしてグローバルまたはリポジトリ単位で設定できます。
  • 05コミット前に解決結果を確認するための`weave check`、`weave explain`、`weave preview`を提供します。
  • 06エージェントフレームワークからマージ、編集、チェックの各ツールを呼び出せるMCPサーバーを提供します。

ユースケース

  • 複数のAIコーディングエージェントが、手動で競合を解決せずに同じソースファイルで作業できるようにする。
  • 多くの開発者が同じ大規模なモジュールや設定ファイルを編集する際に、不要なマージ競合を減らす。
  • 自動化されたエージェントのマージをブランチに公開する前に、構造的なチェック工程を追加する。

クイックスタート

  1. 1

    weave をインストールします(詳細は README の Install セクションを参照してください)

  2. 2

    リポジトリで weave を有効にし、git merge で使われるようにします

    weave setup
  3. 3

    merge を実行します。実際の競合は、refused_by 行を含むマーカーとして表示されます

    git merge <branch>
  4. 4

    解決後の作業ツリーを merge の各ステージと照合して確認します

    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月7日 です。
weave は何に使えますか?
複数のAIコーディングエージェントが、手動で競合を解決せずに同じソースファイルで作業できるようにする。 多くの開発者が同じ大規模なモジュールや設定ファイルを編集する際に、不要なマージ競合を減らす。 自動化されたエージェントのマージをブランチに公開する前に、構造的なチェック工程を追加する。
weave のインストール方法は?
weave をインストールします(詳細は README の Install セクションを参照してください) リポジトリで weave を有効にし、git merge で使われるようにします: weave setup merge を実行します。実際の競合は、refused_by 行を含むマーカーとして表示されます: git merge <branch> 解決後の作業ツリーを merge の各ステージと照合して確認します: weave check
weave はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/Ataraxy-Labs/weave

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト