Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> You can't use CRDTs for version control

You misunderstand what is being proposed.

Using CRDTs to calculate the results of a merge does not require being allowed to commit the results of that calculation, and doesn't even require that you be able to physically realize the results in the files in your working copy.

.

Consider for example if you want to track and merge scalar values. Maybe file names if you track renames, maybe file properties if you're not just using a text listing (ie .gitattributes) for that, maybe file content hash to decide whether to actually bother running a line-based merge.

One approach is to use what Wikipedia says is called an OR-set[1], with the restriction that a commit can only have a single unique value; if it was previously in the set then it keeps all the same tags, if it wasn't then it gets a new tag.

That restriction is where the necessity of conflict resolution comes in. It doesn't have to be part of the underlying algorithms, just the interface with the outside world.

[1] https://en.wikipedia.org/wiki/Conflict-free_replicated_data_...



If semantics-layer conflicts still have to be detected somehow, and resolved by hand, what value is the underlying CRDT providing?


> the result is always the same no matter what order branches are merged in — including many branches mashed together by multiple people working independently.


Why is that valuable?


Yeah, symmetry is overrated.

Git's merge is already symmetrical for two branches being merged, and that, in and of itself, often leads to problems.

It's completely unclear that extending this to multiple branches would provide any goodness.


It means anyone can fix the conflict. Including a server side AI.


non sequitur


I was wondering when someone would try to cram The Slop Machine into this.


This was my immediate thought when seeing this post too lol.


Syntax-only manual merges are just time consuming waste of human time.

I'm a small PR-er so 99% of the time it is Syntax. If if it is semnatic at all often then try trunk based development.


The CRDT isn't syntax-aware either


If it is doing what I think CRDT does, and tracking where the user clicked and what they typed, it sort of carries a bit more syntax info. It has a chance to get it right. And often since it does something it turns a figure this shit out with review this.


Much better is AST merging (which itself is also more amenable to crdts). But doing this at the text level is doing to be a failed experiment - the value isn’t there.


Och, hello fellow monotone user.




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

Search: