[squeak-dev] Tool for: Image2 - Image1 > FileOut?

K. K. Subramaniam kksubbu.ml at gmail.com
Wed Oct 6 11:51:25 UTC 2010


On Wednesday 06 Oct 2010 2:01:56 pm Stefan Marr wrote:
> Hello:
> 
> I got here two images without sufficient development history, source code
> management, or change sets.
> 
> One of the images is the basis point and the other contains all the
> relevant code I need to file out somehow so that it represents a diff
> which can be filed into the base point image easily.
If the two images shared a common image sometime in the past and you have all 
the changes that went into each one of them, then you can open a changelist 
list:

   ChangeList browseFile: 'path/newimage.changes'.

> I am only interested in classes, methods, and their meta infos, so general
> state in the image is not a problem at the moment.

Classes are global variables, so they are part of the state:
   Smalltalk allClasses
will yield an ordered list of all classes in the image.

> If it would be only about methods, that would be easy, since I can find out
> whether it is a changed/new method by locking at the fileIndex.
> However, for classes that does not work out. How can I find out whether
> they changed or were added? That seems to be only possible if they were
> actually commented...
If you have the cs update files that went into the image, you could extract the 
doIts with subclass: messages or method records with class side methods.

> Is there any known tool which could produce me a diff/fileOut/changeSet
> from two given images?
Sorry, I don't know of any :-(.

> Or might there be any other information in the
> image I could use to create one myself?
Compiled methods in development images may have a timeStamp. E.g.

 CompiledMethod someInstance dateMethodLastSubmitted
 CompiledMethod someInstance timeStamp
 (Morph class compiledMethodAt: #initialize) timeStamp

etc.

Subbu



More information about the Squeak-dev mailing list