3d versioning?

could we have from a single xor url a ‘3d’ versioning, so normal versioning 1,2,3 but also a named versioning like alpha beta main stable unstable bleeding edge etc?

I think the underlying versioning is incompatible with a sequence (1, 2, 3…) because it has to support forks.

There’s no reason why you can’t provide your own name, or preferred sequence versioning, but as an overlay.


great, interesting, any insight of how forks will work? each will maybe have its own xor url?

I don’t know offhand but think David has explained them, possibly in answer to me :flushed:

Here’s what David said. It doesn’t say much more but may be clearer:


Yes, forks are fine when data is in the hands of users. So 2 folk update a doc at the same time. There is no way really core code could know what is allowed and what is not, so we allow forks and users can decide what wins.

i.e. Forks in total order are of no use, but total order defines an order (consensus) that can be reached without forks or even (as in our case) where forks are detectable and deterministically resolved.

Forks for human stuff is fine, it happens all the time where folk cannot foresee all changes and make mistakes and so on. It’s natural but requires humans to decide on the winner.

Some data like sets are CRDT and fork free though. So if it’s a set of likes and you like just before or after me, the set is the same (unordered) so there are no forks.

Hope that helps.