In case it helps anyone in the future, here is the "poor man's" browser I
hacked together to find all Magritte changes that needed to be rescued from
an image where those changes got out-of-sync so I couldn't use Iceberg:

nodes := EpFileLogNode fromAllLogsIn: EpMonitor current sessionStore
baseLocator.
relevantNodes := nodes reject: [ :n | (n globalName endsWith: 'g3') or: [ n
globalName endsWith: 'ng' ] ].
relevantNodes do: [ :node | node populateReferencedNodesWith: relevantNodes
].
entries := relevantNodes flatCollect: [ :n | n log entries ].
filter := EpAndFilter withAll: {
        EpImpactCodeChangeFilter new environment: self class environment; 
yourself.
        EpPluggableFilter new condition: [ :e | 
                        e content isCodeChange and: [ 
                        e content affectedPackageName beginsWith: 'Magritte' ] 
].
        EpPluggableFilter noTriggerFilter }.
filteredEntries := entries select: [ :e | filter accepts: e ].
filteredEntries sort: [ :a :b | (a tagAt: #time) > (b tagAt: #time) ].
groups := filteredEntries groupedBy: [ :e | (e content respondsTo:
#methodAffected) ifFalse: [ '?' ] ifTrue: [ e content methodAffected ] ].
events := groups collect: [ :col | col first content ] as:
OrderedCollection.
events collect: [ :e | "{ e." DiffModel new
                showOptions: true;
                leftText: (e accept: EpOldStateVisitor new);
                rightText: (e accept: EpNewStateVisitor new);
                contextClass: e class;
                buildWithSpec "}" ].



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply via email to