Hendrik,

Thanks for all the help.

It seems that changing the category programmatically like this works:

((SystemOrganization listAtCategoryNamed: 'Zinc-HTTP-New-Client-Server') 
        collect: [ :className | Smalltalk globals at: className ])
        do: [ :each | each category: 'Zinc-HTTP-Client-Server' ]

Now MC did pick up the changes.

Sven

On 06 Dec 2010, at 16:07, Henrik Johansen wrote:

> 
> On Dec 6, 2010, at 3:52 08PM, Sven Van Caekenberghe wrote:
> 
>> 
>> On 06 Dec 2010, at 15:42, Henrik Johansen wrote:
>> 
>>> If you create a new package with the proper name in the monticello browser 
>>> (+Package) though, the recategorized class definitions should end up in the 
>>> correct place.
>> 
>> OK, Hendrik, +Package might indeed add them to a new Package, and yes one 
>> has to do that manually (no problem there), but are they then removed from 
>> their original Package ?
>> 
>> And what about just renaming a category, these changes do not seem to be 
>> picked up. Is there a way to force this ?
>> 
>> Or do I have to do a fileout and manually delete each class, even edit the 
>> fileout's source code ?
>> 
>> Anyway, thanks for the reply.
>> 
>> Sven
> 
> IIRC, (big if), the package corresponding to the category that was renamed 
> will not contain any code if you browse it, but neither is it marked as dirty.
> So by default, you probably wouldn't  publish the new, empty version of the 
> package unless you looked for it specifically.
> New packages created before or after renaming an existing category will not 
> be marked dirty as a consequence of the category rename either.
> 
> If you change the category of a single class however, both old and new 
> package will be marked dirty. (Except if you create the new package after 
> performing the rename)
> 
> TLDR; 
> The packages will contain the correct code, if you publish them.
> Marking packages as dirty does not work for category renames, but do work for 
> single class renaming done by recompiling class definition.
> 
> Cheers,
> Henry


Reply via email to