Live data from Hacker News

Weave: Merging based on language structure and not lines

ataraxy-labs.github.io

31–40 of 51 posts

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

#31
post #7

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

I tried to read this, and what the tool works, but this is so much text with little context. Looks like AI fluff. It sounds pretty straight-forward, so this should be a single page with a few paragraphs only.

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

#32

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

> Why does EVERYTHING has to be geared towards agents?

This was also my first thought when I checked the website. I was interested in the general merge approach, and that it works with LLMs and agents fine, but that's secondary. Nowadays every product must be in-your-face AI-first somehow, often to the extent that it de-emphasizes why the product exists in the first place, its core competency and distinguishing features pushed below the fold by screaming "It supports AI" headlines. It saddens me. That something supports AI is nothing special anymore, an expected feature. Just mention it like that, in the product highlight box next to where it mentions that it supports Github or similar nothing-special features.

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

#34
post #19
post #13

Earlier quoted context omitted.

> 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.

I suspect it's much worse with agents. They tend to generate a lot more code and also more likely to make large refactors.

From the parent, making edits to different functions in the same file usually doesn't cause a merge conflict unless they're close together. Usually it's when you have the same lines being replaced with 2 different options.

I think humans naturally tend to try to avoid working on the same area of the codebase at the same time and have other mitigations like daily meetings to coordinate and organize.

That said, yeah, I think they're complaining about "slap AI on everything" as well

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

#35
Maybe it is time to reintroduce agents to Extreme Programming. Mainly leaning into frequent integration (putting the continuous back in CI)

Imo merge conflicts are usually a symptom of another problem like poor coordination, poor architecture, too big of change sets, branches that are too long lived. I think the most common case I hit them is conflicting package lock file updates but merging is usually useless there. For lock files you usually just pick one version then have the package manager update it.

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

#36
post #13

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

> 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)

> the most amount of code generated by agents

Yes, I wholehartly agree. Coming from a week of agent-coding - out of pure curiosity - most code was generated by agents, which I had then to delete and rewrite to use like a quarter of statements to achieve the same, in an understandable, maintainable way.

But that's just my experience.

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

#37

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 had the same problem. Was using this a few months ago, had it running for weeks, and noticed that code was disappearing. I no longer use it. Aside from that, I decided there's no point anyway, considering that LLMs are great at figuring out merge conflicts.

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

#38
post #15

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

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.

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

#40
Website is pure slop, but I'd really like more tools like this. Can any human confirm if this is actually any good?

Also if any of the slopperators want to make something really useful, can we get a decent `git diff` GUI that detects moved/copied lines across files? As far as I know the only tool that does this is `git diff --color-moved` but reviewing diffs in the terminal sucks, and it drops all information about where the code was moved/copied from.

VSCode has something experimental for this but it doesn't work across files as far as I know.

Post reply on HN