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