An unreleased, not production-ready VCS that I made so I could finish grad school. :-)
The basic approach is similar to how git works: store all your revision state as a tree, and have code for merging trees. If you choose a good representation for this tree, and take some care with how you implement the merging operations, and do the merge in such a way that you’re guaranteed to achieve convergence regardless of merge order, then you can get all those snazzy properties I mentioned earlier.
I’ve proven asymptotic time bounds and correctness for all the operations, and verified that it actually works the way it’s supposed to in real code, but for now this is of mostly theoretical interest. For now.
An unreleased, not production-ready VCS that I made so I could finish grad school. :-)
The basic approach is similar to how git works: store all your revision state as a tree, and have code for merging trees. If you choose a good representation for this tree, and take some care with how you implement the merging operations, and do the merge in such a way that you’re guaranteed to achieve convergence regardless of merge order, then you can get all those snazzy properties I mentioned earlier.
I’ve proven asymptotic time bounds and correctness for all the operations, and verified that it actually works the way it’s supposed to in real code, but for now this is of mostly theoretical interest. For now.