Versioning changes to pre-existing classes with Monticello

Bert Freudenberg bert at impara.de
Fri Nov 11 21:51:08 UTC 2005


Here are a few more options to explore:

- select ODBCConstants, choose explain from the shifted context menu.  
For TextConstants, I get

TextConstants "is a global variable.  It is a pool which is used by  
the following classes (CharacterBlock CharacterScanner  
MultiTextComposer Paragraph MultiNewParagraph CompositionScanner Text  
LimitingLineStreamWrapper TextLineInterval MultiCharacterScanner  
TextStyle StrikeFont HostFont DisplayText SegmentScanner CharRecog  
ParagraphEditor)"

- press delete, select ODBCConstants again, and press Cmd-Shift-N (or  
choose "references to it" from the shifted context menu). This will  
show you a list of methods that directly reference the dictionary.  
One of them surely is the defining method.

About actually changing this to a SharedPool ... you probably should  
leave that to someone actually knowing what he's doing ;-) Basically  
you create the new class, add all the pool vars as class vars, write  
an initialize method to assign the values. By using the same name all  
references should automatically be correct - if not, you would have  
to change them by hand.


OTOH, it might be a lot less trouble to just add your constants to  
the existing pool in a class initialize method.

For further discussion, see this thread: http:// 
lists.squeakfoundation.org/pipermail/squeak-dev/2003-June/059495.html

- Bert -

Am 11.11.2005 um 14:58 schrieb Simon Kirk:

> Sorry, another thing: Given that there is an existing ODBCConstants  
> pool dictionary for the ODBCConnection class that is an actual  
> Dictionary rather than a SharedPool, how would I go about  
> refactoring this into a SharedPool given that I can't seem to find  
> the actual class hierarchy of the ODBCConstants pool anywhere? I  
> can get to the Dictionary by highlighting the name of it in the  
> definition of ODBCConnection and inspecting it, but that's as far  
> as I can go.
>
> Cheers again,
> S
>
> Simon Kirk wrote:
>
>> Hi Bert - thanks for the answer, I kind of understand it. However  
>> I'm very much a Squeak newbie, so I'm a bit confused as to how the  
>> SharedPool system works. I can see the FFIConstants as an example,  
>> but I haven't got a clue about what kind of standards to adhere  
>> to, how to set the new constants pool up, etc. Is there any kind  
>> of documentation you can point me towards to read up on this?
>>
>> Thanks,
>> S
>>
>> Bert Freudenberg wrote:
>>
>>> Am 11.11.2005 um 14:35 schrieb Simon Kirk:
>>>
>>>> Hello again all.
>>>>
>>>> As part of my recent ODBC work I've added a number of ODBC   
>>>> constants to the pool dictionary of the ODBCConnection class  
>>>> from  ODBC-Core. I've also changed some methods in various ways.  
>>>> I can  version those method changes with monticello, but how can  
>>>> I go  about versioning the new constants in the pool dictionary  
>>>> into my  monticello repository as well?
>>>
>>>
>>>
>>> Pool variables are ordinary class variables of a subclass of   
>>> SharedPool. Just initialize the class variables from the class   
>>> #initialize method as usual.
>>>
>>> If you use old-style pools (dictionaries) you should change them  
>>> to  proper SharedPools.
>>>
>>> - Bert -
>>>
>>>
>>>
>>>
>>>
>>
>>
>> This message has been scanned for viruses by BlackSpider  
>> MailControl - www.blackspider.com
>>
>>
>>
>>
>>

- Bert -




More information about the Squeak-dev mailing list