Weave: Merging based on language structure and not lines

(ataraxy-labs.github.io)

18 points | by rohanat 3 hours ago

5 comments

  • BrandiATMuhkuh 6 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 47 minutes ago

        Without having looked into how Weave works, it sounds similar to Mergiraf: https://mergiraf.org/

      • satvikpendem 59 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.