Live data from Hacker News

Weave – A language aware merge algorithm based on entities

github.com

51–60 of 123 posts

Re: Weave – A language aware merge algorithm based on entities

#51

[flagged]

>I feel git is done for good I'm either not understanding your comment or not understanding the project. Isn't this built on top of git?

I think he was just being sarcastic, git's so amazing it can never be done for good. Yeah it's just a merge driver that will sit on top of git.

Re: Weave – A language aware merge algorithm based on entities

#52

The entity-level approach is a meaningful step up from line-based merging. Anyone who has dealt with a merge conflict where git splits a function signature across conflict markers knows how much context is lost at the line level. Curious how this handles languages with significant whitespace like Python, where indentation changes can shift the semantic meaning of entire blocks.

[flagged]

Re: Weave – A language aware merge algorithm based on entities

#53

Earlier quoted context omitted.

https://github.com/Ataraxy-Labs/weave/pull/11 Dude did you just call me AI generated haha, i've been actively using weave for a gui I've been building for blazingly fast diffs https://x.com/Palanikannan_M/status/2022190215021126004 So whenever I run into bugs I patched locally in my clone, I try to let the clanker raise a pr upstream, insane how easy things are now.

[flagged]

Nope that's other user, he has been working with me on weave, check the PRs that you are calling AI generated.

Re: Weave – A language aware merge algorithm based on entities

#54

[flagged]

You have write access to this git repo as a first time contributor. You are likely the owner of this repo as well.

You made a pull request not from your own fork, but from a separate branch, https://github.com/Ataraxy-Labs/weave/pull/9

Re: Weave – A language aware merge algorithm based on entities

#55

[flagged]

You have write access to this git repo as a first time contributor. You are likely the owner of this repo as well. You made a pull request not from your own fork, but from a separate branch, https://github.com/Ataraxy-Labs/weave/pull/9

Yeah he is the other contributor to the repo.

Re: Weave – A language aware merge algorithm based on entities

#56

[flagged]

You have write access to this git repo as a first time contributor. You are likely the owner of this repo as well. You made a pull request not from your own fork, but from a separate branch, https://github.com/Ataraxy-Labs/weave/pull/9

He also was pushing code to a branch on the same repo three weeks ago: https://github.com/Ataraxy-Labs/weave/commits/fix/utf8-panic... but is acting in this post like he just discovered the project.

Re: Weave – A language aware merge algorithm based on entities

#57
post #12

At this point, the question is: why keep files as blobs in the first place. If a revision control system stores AST trees instead, all the work is AST-level. One can run SQL-level queries then to see what is changing where. Like - do any concurrent branches touch this function? - what new uses did this function accrete recently? - did we create any actual merge conflicts? Almost LSP-level querying, involving versions…

How do you get blob file writes fast?

I built lix [0] which stores AST’s instead of blobs.

Direct AST writing works for apps that are “ast aware”. And I can confirm, it works great.

But, the all software just writes bytes atm.

The binary -> parse -> diff is too slow.

The parse and diff step need to get out of the hot path. That semi defeats the idea of a VCS that stores ASTs though.

[0] https://github.com/opral/lix

Re: Weave – A language aware merge algorithm based on entities

#58
How does it compare to https://mergiraf.org/ ? I've had good experience with it so far, although I rarely even need it.

It's also based on treesitter, but probably otherwise a more baseline algorithm. I wonder if that "entity-awareness" actually then brings something to the table in addition to the AST.

edit: man, I tried searching this thread for mention of the tool for a few times, but apparently its name is not mergigraf

Re: Weave – A language aware merge algorithm based on entities

#59

Earlier quoted context omitted.

You have write access to this git repo as a first time contributor. You are likely the owner of this repo as well. You made a pull request not from your own fork, but from a separate branch, https://github.com/Ataraxy-Labs/weave/pull/9

He also was pushing code to a branch on the same repo three weeks ago: https://github.com/Ataraxy-Labs/weave/commits/fix/utf8-panic... but is acting in this post like he just discovered the project.

Yup he works at Plane, and he used weave in merge conflicts there which helped him, he just told about it. He has been contributing and using weave since then.

Re: Weave – A language aware merge algorithm based on entities

#60
post #12

At this point, the question is: why keep files as blobs in the first place. If a revision control system stores AST trees instead, all the work is AST-level. One can run SQL-level queries then to see what is changing where. Like - do any concurrent branches touch this function? - what new uses did this function accrete recently? - did we create any actual merge conflicts? Almost LSP-level querying, involving versions…

How do you get blob file writes fast? I built lix [0] which stores AST’s instead of blobs. Direct AST writing works for apps that are “ast aware”. And I can confirm, it works great. But, the all software just writes bytes atm. The binary -> parse -> diff is too slow. The parse and diff step need to get out of the hot path. That semi defeats the idea of a VCS that stores ASTs though. [0] https://github.com/opral/lix

This is exactly a reason why weave stays on top of git instead of replacing storage. Parsing three file versions at merge time is fine (was about 5-67ms). Parsing on every read/write would be a different story. I know about Lix, but will check it out again.
Post reply on HN