I am not really interested in conceptual ideas (with those I can come up anytime I want). I want an actual solution as an answer to my stackoverflow question with code that works ;) On 2013-05-01, at 03:31, Igor Stasenko <siguctua@gmail.com> wrote:
Ane of the idea is to use serialization, but with custom strategy. Since we're in living system, each object can know the answer to question whether it is important to capture it's changes or not. As well, as it can instruct serializer, what part(s) of its state needs to be serialized and which not.. This will give us the filtering rules out of the box.
But still it won't give us an automagic way to represent changes in human-readable form, e.g:
diff := someObject createTextualDiff: myPreviousSerializedVersion.
well, unless you serialize textual forms of both objects .e.g:
diff := someObject sufficientTextualForm createTextualDiff: myPreviousSerializedVersionSufficientTextualForm.
(the bad part of it that it is quite difficult to represent arbitrary graph with possible cycles in human-readable textual form ;)
-- Best regards, Igor Stasenko.