March 3, 2026
Merge wars: ceasefire or sequel?
Weave – A language aware merge algorithm based on entities
Dev world splits: “Finally, no more Git fights!” vs “Call me when it handles Bash”
TLDR: Weave promises smarter, calmer code merges by understanding functions instead of lines, aiming to kill “fake” conflicts. The crowd’s split between excitement—backed by a nod from a Git merge expert—and doubts about real-world fit, especially missing Bash and Ruby support and how well it plays with AI coding agents.
Weave rolls in promising to stop your code from fighting itself — swapping Git’s line-by-line squabbles for entity-level merges that understand functions and keys. Translation: when two people add different functions in the same file, Git panics; Weave shrugs and keeps both. The crowd? Half cheering, half side-eyeing. One early fan linked the site and said it “sounds really valuable,” while another fired the first skeptical shot: “Are AI agents even good with this?”
The endorsement that lit up the thread: a commenter says Elijah Newren — the engineer behind Git’s default merge strategy — reviewed Weave and called language-aware merging “the right approach,” praising its fallback to normal Git for unsupported files. Cue developers declaring “merge peace in our time,” complete with jokes about “Git conflict PTSD” and “entity therapy.”
But drama lurks in the edges. A user compared Weave to Mergiraf (another tree-sitter tool) and grumbled that neither supports Bash out of the box — a dealbreaker for people wrangling scripts, including those edited by AI tools like Claude. Another begged for Ruby support. These gaps sparked a bigger debate: is Weave ready for messy, real-world repos full of scripts and odd formats, or is it a slick fix for the happy path? Either way, folks love Weave’s conflict messages that read like receipts — telling you exactly which function is fighting and why. Two functions walk into a file; Git screams; Weave says: relax.
Key Points
- •Weave is an entity-level semantic merge driver for Git designed to reduce false conflicts from line-based merges.
- •It parses base, ours, and theirs into semantic entities using tree-sitter and merges changes at the entity level.
- •Independent changes to different entities are auto-resolved; true conflicts occur only on incompatible edits to the same entity.
- •Weave supports multiple languages and formats and falls back to line-level merge for unsupported types.
- •Setup includes building with Cargo, Git configuration for the weave driver, .gitattributes entries, and a CLI for setup and preview.