hello !
I am working on the version compare now.
Based on the paper here, https://www.researchgate.net/publication/310212186_Near_Real-Time_Peer-to-Peer_Shared_Editing_on_Extensible_Data_Types .
if clientA type sequentially, described as C(clientA,0,10), clientB deleted the last 7 character, C(clientA, 0 ,10) will split into two parts : C(clientA, 0, 3) and C(X, 0,7) which is only marked as deleted. My local demo shows that the X in C(X, 0, 7) is clientA’s ydoc ClientID rather than ClientB’s …
I have no clue how to trace this kind of delete operations ( userB delete userA’s content) if yjs/crdt work in the way above.
i dived into the version demo:https://github.com/yjs/yjs-demos/blob/master/prosemirror-versions/schema.js, seems Y.PermanentUserData will overwrite the delete struct and getUserByDeletedId.
i am wondering that how can i track which user delete other’s content without PermanentUserData, cus based on my test demo, clientB delete clientA’s content, yjs only mark clientA’s content as deleted, clientB’s modification not recorded at all, isn’t ?
Is my understanding correct ?