Live data from Hacker News

Weave: Merging based on language structure and not lines

ataraxy-labs.github.io

21–30 of 51 posts

Re: Weave: Merging based on language structure and not lines

#21

How does it compare to SemanticDiff extension?

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.

Re: Weave: Merging based on language structure and not lines

#22
post #10

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 ru…

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.

Re: Weave: Merging based on language structure and not lines

#23

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.

Re: Weave: Merging based on language structure and not lines

#25

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?"

[deleted]

Re: Weave: Merging based on language structure and not lines

#28
post #16

First image I see should be a difference of how the merges work.

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.

Re: Weave: Merging based on language structure and not lines

#29
Too bad Trump hijacked the meaning of the word "weave" to mean senile "sunsetting" and rambling incoherently from unrelated topic to topic, swerving between conversational lanes and colliding with facts and laws and decency like a sleepy angry drunk driver off his meds.
Post reply on HN