Weave: Merging based on language structure and not lines

(ataraxy-labs.github.io)

18 points | by rohanat 3 hours ago

5 comments

  • BrandiATMuhkuh 3 minutes ago
    Pretty cool. I always thought merges should happen by comparing the AST and not lines
  • willrshansen 1 hour ago
    First image I see should be a difference of how the merges work.
  • psYchotic 43 minutes ago
    Without having looked into how Weave works, it sounds similar to Mergiraf: https://mergiraf.org/
  • satvikpendem 55 minutes ago
    How does it compare to SemanticDiff extension?
  • basurayshreyan 3 hours ago
    how does it fare on organisation repos ? Its quite tricky to make it work on org plans where git based merge goes through a lot of code scannings and stuffs i guess. Curious to know about that
    • rohanat 3 hours ago
      Good question. Weave is a standard git merge driver, so it slots into the existing flow rather than replacing it. You wire it up in .gitattributes, and it only changes the 3-way conflict-resolution step that git already runs. The output is a normal merged tree, so everything an org layers on top still runs unchanged: branch protection, required status checks, code scanning, CI. It isn't bypassing any of that. It just resolves conflicts by entity structure (functions, classes, methods) instead of line hunks, then hands a regular file back to git.