josephg / ShareJS

Collaborative editing in any app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Undo feature

qjouda opened this issue · comments

Hi All,

I am doing a Master thesis about Operational Transformation. I couldn't find any APIs for Undoing an operation. Can someone tell if the feature is already there and not documented. If not, is it hard to implement it? or could someone give some tips where and how to start with implementing it?!

Thank you

Its not implemented. The doc class is where it'd go.

... Its kind of overcomplicated - sorry about that.

commented

@josephg undo of collaborative system using operational transformation is really really complicated. I'm seeking algorithm support. Undo should satisfy IP2(transform against a do-undo pair should return the original operation) and IP3(transform against another operation b, then undo, should be equal to undo then transform against b). Support IP2 and IP3 is difficult for transformation functions. Some ot control algorithm supports IP2 and IP3 properties. A kind of control algorithm need ET function to support IP2 and IP3. Context based control algorithm don't need ET function(it's the only one), but it seems overcomplicated, it saves every original operation and it's context, and may rerun transform from the beginning.
Do you know some approach to support undo properly without a lot of complication?