2 ms·
I wrote a simple diff3[1] with a port of someone's Myers algorithm code implementation that I am still trying to get right. Diff is pretty tricky! I want the di
by samsquire 4y ago
I wrote a simple diff3[1] with a port of someone's Myers algorithm code implementation that I am still trying to get right. Diff is pretty tricky! I want the diff to have the same behaviour as git. I can detect conflicts but largest common substring isn't always the same behaviour. I think git is line aware.
My goal is to create a database with seamless merge with my Merkle CRDT implementation[3]. That can be a distributed system that handles non-conflicting merges. CRDTs allow data to be merged seamlessly without overwriting eachother. The braid protocol is very interesting too. I recommend reading the shelf CRDT algorithm.[4]
I am also interested in distributed systems and programming language design. See my profile for my ideas.
[1]: HTTPS://GitHub.com/samsquire/text-diff
[2]: https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/ https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm...
[3]: HTTPS://GitHub.com/samsquire/merkle-crdt
[4]: https://braid.org/algorithms/shelf https://braid.org/algorithms/shelf
- alexdowad 4y agoAs a suggestion, why not peek at the source code for git and see what they are doing differently from you?
- samsquire 4y agoTo understand Git's sourcecode I need to understand the theory and the problems of diffing so I am trying to solve the problems before looking up the hard fought answers to algorithmic problems.