weave  by Ataraxy-Labs

Semantic Git merge driver for intelligent conflict resolution

Created 2 months ago
967 stars

Top 37.9% on SourcePulse

GitHubView on GitHub
Project Summary

<2-3 sentences summarising what the project addresses and solves, the target audience, and the benefit.> Weave tackles Git's pervasive issue of "false conflicts" arising from line-based merging, a problem exacerbated by AI code generation. By employing entity-level semantic merging via tree-sitter, it intelligently understands code structure (functions, classes, keys) to resolve conflicts. This offers developers, especially those leveraging AI agents, a significantly cleaner and more efficient merge process, reducing manual intervention and preventing merge blockages.

How It Works

Weave replaces Git's naive line-range comparison with a sophisticated entity-level merge. It parses the base, 'ours', and 'theirs' versions of a file into semantic entities like functions, classes, or JSON keys using tree-sitter grammars. Entities are matched across versions by identity (name, type, scope). Changes to distinct entities are automatically merged, while modifications to the same entity trigger an intra-entity merge, only flagging conflicts if they are semantically incompatible. This approach fundamentally differs from Git's by only flagging true semantic collisions, not arbitrary line overlaps.

Quick Start & Requirements

Installation involves building the Rust project (cargo build --release) and running ./target/release/weave-cli setup or configuring Git manually via git config and .gitattributes. Supports TypeScript, JavaScript, Python, Go, Rust, Java, C/C++, Ruby, C#, PHP, Swift, Fortran, and structured data formats (JSON, YAML, TOML, CSV, Markdown). For unsupported file types, large files (>1MB), or binary files, Weave gracefully falls back to Git's standard line-level merge.

Highlighted Details

  • Demonstrated zero regressions across extensive testing on major open-source repositories.
  • Significant "wins" resolving Git conflicts (e.g., 39 in git/git, 65 in TypeScript).
  • "Human Match" rates align with human intent (e.g., 64% for git/git, 58% for Go).
  • Provides context-rich conflict markers, identifying the specific entity and type of conflict.

Maintenance & Community

No specific details regarding maintainers, community channels (e.g., Discord, Slack), sponsorships, or roadmap were found in the provided README content.

Licensing & Compatibility

The provided README content does not specify the software license, making it impossible to determine compatibility for commercial use or closed-source linking.

Limitations & Caveats

Weave defaults to Git's line-level merge for files exceeding 1MB, binary files, and any file types not explicitly supported by its tree-sitter grammars. The absence of explicit licensing information is a significant caveat for adoption.

Health Check
Last Commit

2 days ago

Responsiveness

Inactive

Pull Requests (30d)
22
Issues (30d)
8
Star History
172 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.