Hacker Newsnew | past | comments | ask | show | jobs | submit | rohanat's commentslogin

This is great, and sorry we never landed a time after Reddit, that one's on me. Let's actually fix it, could you email me on rohan@ataraxy-labs.com.

For context on where the gap might be: weave matches at the entity level (functions/classes/methods by name + type + scope) and uses structural hashing for rename/reorder detection, so it should shine on reorders, renames, and large same-file edits, and may be at parity elsewhere. If your stream tags conflicts by language and type, comparing where each driver wins would be useful to both of us.


Different layer. SemanticDiff is a language-aware diff viewer, it helps you read a change. weave is a merge driver, it resolves the three-way merge so you get fewer conflicts in the first place. The closer analog to SemanticDiff in our stack is sem diff.

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.

A merge tool cannot have silent failure cases. Period.

Thanks a lot for the feedback, appreicate it!

Yeah you can find the readme on the github repository.

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.

Could you link to it? I couldn’t find it on your site.


Totally fair. The merge logic doesn't care whether a human or an agent wrote the commit, "two commits touch different functions in the same file, clean merge" is exactly how a human should read it too. We lead with agents because that's where merge volume is about to explode and the pain is worst, not because it's agent-only. Point taken on the copy, I'll make it less exclusionary.

I've genuinely had this problem in teams as small as 3 and it's a genuine headache. It's even a problem when you're working solo!

What I want is a comparison with other improved diff/merge drivers like difftastic/mergiraf.


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.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: