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