Tools for working with ChangeSets

Karl karl.ramberg at comhem.se
Thu Mar 1 19:00:58 UTC 2007


Matthew Fulmer wrote:
> I am trying to file in a changeset that was made for Squeak 3.2,
> but will lock up a 3.8 image when filed in, due to changing some
> really deep stuff with in Object (such as doesNotUnderstand:).
> So I looked for a way to differentiate between the ChangeRecords
> that override an existing method from those that don't, and I
> came across ChangeList.
>
> ChangeList seems to be the object that is created from a .cs
> file, but the class itself seems to be a black box. For
> instance, there is no obviously correct way to create a
> ChangeList from a .cs file without popping up the change viewer
> tool. to do that, I had to copy the class method browseStream:
> to a workspace and did all but the last line (strangely,
> this class seems to be somehow tied to the UI event loop, so
> debugging browseStream: freezes the UI).
>
> Then, once I had a ChangeList without a window, I was able to
> call ChangeList>>changeList to get at the list of ChangeRecords
> and sort them like:
>
> dangerous := changeList changeList select: [:each|
>     each methodClass ifNil: [false] ifNotNil: [
>         each methodClass canUnderstand: each methodSelector]]
>
> and similarly for "safe" changes. Now, again, there is now
> obviously correct way to create a ChangeList from this
> OrderedCollection of ChangeRecords.
>
> The problem is that ChangeList is trying to be both a Model and
> a View (at least that is how it seems to me), and is not doing a
> very good job at either. The tools for ChangeSet manipulation
> seem to be much better, and the only difference that I can see is
> that ChangeList handles external code and ChangeSet handles
> in-image code. 
>
> My questions:
> - Is there some tool that does what I am looking for? 
> - Why the difference between ChangeSet and ChangeList?
>
> If there is no tools for the task I am attempting, I will just
> keep hacking it.
>
>   
Have you looked at the File Contents Browser and ChangeList browser ? 
You can 'psudo' compile a file and browse it before fileing it in, look 
at what changes what and sort out which method causes the problem. You 
can file in class for class method for method. Great tools for massaging 
old code into newer images.
Karl



More information about the Squeak-dev mailing list