useNewChangeSetDuring: aBlock
| changeHolder oldChanges newChanges |
changeHolder := (ChangeSet respondsTo: #newChanges:)
ifTrue: [ChangeSet]
ifFalse: [Smalltalk].
oldChanges := (ChangeSet respondsTo: #current)
ifTrue: [ChangeSet current]
ifFalse: [Smalltalk changes].
newChanges := ChangeSet new name: (ChangeSet uniqueNameLike: self extractPackageName).
changeHolder newChanges: newChanges.
[aBlock value] ensure: [changeHolder newChanges: oldChanges].
to just assume that ChangeSet can respond to those messages, and then I realized that there were no references to the whole class...