One more thing I thought of..

> To return to CoreObject's implementation, I'm concerned that merge/selective
> undo isn't  possible with pure message-based persistency.  In order to
> support merging/selective undo, we need to be able to tell if operations
> conflict, get their inverse, and transpose groups of them. It's easy to
> define these for a small set of basic operations like setValue:forProperty:,
> insertObject:atIndex:ofProperty:, removeObject:atIndex:ofProperty:, etc.,
> which is more or less what I did in ObjectMerging.
> But If the message log contains high level messages like
> "-refactorMethod:to:" or "-indentParagraph:" without any other information,
> you can't really do selective undo/merge.

Also, you could do merging/selective undo by reconstructing the
necessary states and doing the object graph diff/merge on them like I
do in ObjectMerging.
However, this violates the message-based persistence model because you
need to know
what the states looks like in order to build diffs of them.

--Eric

_______________________________________________
Etoile-dev mailing list
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to