I think this is a great idea, and I've wondered about something like this before.
I do find it sad though that the opening description has to be:
> Two agents edit different functions in the same file? Clean merge.
Why does EVERYTHING has to be geared towards agents? Humans can use this too. Why not just "two commits contain edits for different functions in the same file?"
Automated process run into race conditions more often due to their frequency.
Humans can do that too, but are less likely to in practice both due to lower frequency and because they carry more awareness of global context that isn't captured in systems that aren't checking for it. The ability of your brain to read and take as context all the pull requests open in a repo that might affect your work.
This tool does not work. I wanted it to work. I wanted to automate merges with AI supervision. No dice. Silent corruption that wouldn't go away no matter how many issues I filed. Unacceptable. Had to disable it. https://github.com/Ataraxy-Labs/weave/issues?q=is%3Aissue%20... Be warned.
I am sorry about your experience igra, but to be fair, yeah there are some failure cases but I love to receive any feedback that you think can improve it and make it a more generalized solution.
I'm working on an online diff tool (https://codeinput.com/products/merge-conflicts) and recently added a mergiraf integration. Basically, the tool loads your git merge but uses mergiraf as the resolution driver. Then add these auto-resolved files to the editor instead of auto-resolving directly.
I also tried out weave, but apart from TypeScript, I haven't found any cases where it actually outperforms mergiraf (I run a bot that watches for new merge conflicts on GitHub, so I've got a steady stream of conflicts to test against).
I reached out a couple months ago on Reddit, but I don't think we ever landed on a time to talk. Would be interested to re-connect again.
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
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.
I think this is a great idea, and I've wondered about something like this before.
I do find it sad though that the opening description has to be:
> Two agents edit different functions in the same file? Clean merge.
Why does EVERYTHING has to be geared towards agents? Humans can use this too. Why not just "two commits contain edits for different functions in the same file?"
Automated process run into race conditions more often due to their frequency. Humans can do that too, but are less likely to in practice both due to lower frequency and because they carry more awareness of global context that isn't captured in systems that aren't checking for it. The ability of your brain to read and take as context all the pull requests open in a repo that might affect your work.
> Why does EVERYTHING has to be geared towards agents?
Moving forward one can expect the most amount of code to be generated by agents, so it makes sense to optimise for that use case.
(Note that i’m not saying it’s good or bad)
> so it makes sense to optimise for that use case.
How do the agent and human use cases meaningfully differ here, though?
I'm pretty sure GP's complaint is about the prose description, rather than the actual functionality.
[flagged]
> Software, written for the things that read it.
> humans are slow, forgetful, and can only hold a few things in their head at once.
Thank you very much for stating it all up-front.
Does this _need_ to be language specific, semantic and smart? Just a word-based diff would be so much better than a line-based diff.
First image I see should be a difference of how the merges work.
The AI thougth it's better to just show the result in a stupid manner. I expect the software AND the website are mostly AI generated.
Thanks a lot for this feedback, you are right, but I actually had a page about the merge algorithm more in depth, maybe you will love it.
Without having looked into how Weave works, it sounds similar to Mergiraf: https://mergiraf.org/
There's a benchmark on the site that compares with mergiraf.
https://ataraxy-labs.github.io/weave/benchmarks.html
If it is worth trying out, it is worth writing the README for.
Yeah you can find the readme on the github repository.
This tool does not work. I wanted it to work. I wanted to automate merges with AI supervision. No dice. Silent corruption that wouldn't go away no matter how many issues I filed. Unacceptable. Had to disable it. https://github.com/Ataraxy-Labs/weave/issues?q=is%3Aissue%20... Be warned.
I am sorry about your experience igra, but to be fair, yeah there are some failure cases but I love to receive any feedback that you think can improve it and make it a more generalized solution.
Pretty cool. I always thought merges should happen by comparing the AST and not lines
Thanks a lot for the feedback, appreicate it!
How does it compare to SemanticDiff extension?
[dead]
I'm working on an online diff tool (https://codeinput.com/products/merge-conflicts) and recently added a mergiraf integration. Basically, the tool loads your git merge but uses mergiraf as the resolution driver. Then add these auto-resolved files to the editor instead of auto-resolving directly.
I also tried out weave, but apart from TypeScript, I haven't found any cases where it actually outperforms mergiraf (I run a bot that watches for new merge conflicts on GitHub, so I've got a steady stream of conflicts to test against).
I reached out a couple months ago on Reddit, but I don't think we ever landed on a time to talk. Would be interested to re-connect again.
[dead]
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
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.
[dead]