[Cuis-dev] Rename class not logging to user changes

Juan Vuletich juan at jvuletich.org
Fri Jul 5 09:37:42 PDT 2019


Ok for class rename.

BTW, just checked and in the current change set it gets recorded like:
Smalltalk renameClassNamed: #EllipseMorph as: #TheEllipseMorph

But, if I rename ivar pointBlock in HandleMorph, and then file out 
changes, I do get the detailed sequence.


On 7/5/2019 12:35 PM, Hernan Wilkinson wrote:
> recording the whole sequence is going to be more difficult because 
> that it is not what really happens... so those events should be 
> "artificially" created, and I think that for an automatic recovery of 
> the image that is the most used case for this, it is better just to 
> add the "rename" event. When recovering it will just rename the class 
> and then apply the method changes...
>
> On Fri, Jul 5, 2019 at 12:20 PM Juan Vuletich <juan at jvuletich.org 
> <mailto:juan at jvuletich.org>> wrote:
>
>     Maybe they should be recorded both ways: as ClassRename and as
>     sequence {ClassCreation. NewMethods. UpdateClassReferences.
>     OldClassRemoval}. There are some reasons for wanting the sequence.
>     One is to be able to re-apply changes, or not require to be in
>     exactly the same state as when the change was created.
>
>     If both ways are included, then the user of the file can decide
>     what s(he) prefers.
>
>     On 7/5/2019 10:11 AM, Hernan Wilkinson via Cuis-dev wrote:
>>     Hi Eric,
>>      yeap, class rename is not being logged ... a new type of change
>>     should be created for that. If fact, it would be great to record
>>     all type of refactorings as refactorings instead of only the
>>     changes composed by the refactoring.
>>
>>      Regarding the new change record, it should be a class rename
>>     type, not a deletion and creation of the new one because that
>>     does not happen when doing a class rename.
>>      There is an important question to answer: when loading the
>>     change record, should it rename the references too or should only
>>     do it for those that are recorded? ... if all the changes are
>>     loaded then the later should be applied but if not? I think the
>>     best option is to only rename the class and then let the other
>>     changes change the reference. (I hope this is understandable :-) )
>>
>>     Hernan.
>>
>>     On Fri, Jul 5, 2019 at 2:04 AM Eric Brandwein via Cuis-dev
>>     <cuis-dev at lists.cuis.st <mailto:cuis-dev at lists.cuis.st>> wrote:
>>
>>         Hi all,
>>
>>         Today Cuis broke because I was messing with Morphs, and I had
>>         to close the image. Unfortunately, I hadn't saved my changes,
>>         so to recover them I had to rely on the .user.changes file. I
>>         opened up the image again, and it asked me to recover
>>         changes. I selected to automatically recover them, and a
>>         strange error occurred: it told me that UndefinedObject
>>         didn't understand #removeSelector:. Digging through the
>>         ChangeList, I noticed something: the class renames were
>>         nowhere to be seen. So, what was happening is that there were
>>         some ChangeListElements that removed selectors from classes
>>         that didn't exist because they had the old names from before
>>         I renamed them.
>>
>>         All this story is to point out that bug: the class rename
>>         isn't logging to the changes file. And I'm not really sure
>>         how to solve it quickly and cleanly; there isn't a
>>         ClassRenameChangeRecord class like there's a
>>         ClassDeletionChangeRecord, so either there should be a new
>>         kind of ChangeList record to log class renames or we should
>>         log the deletion of the class and the subsequent adding of
>>         all the methods that were previously in that class to the
>>         class with the new name. What do you think?
>>
>>         Cheers,
>>         Eric
>>         -- 
>>         Cuis-dev mailing list
>>         Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
>>         https://lists.cuis.st/mailman/listinfo/cuis-dev
>>
>>
>>
>>     -- 
>>     *Hernán Wilkinson
>>     Agile Software Development, Teaching & Coaching*
>>     *Phone: +54-011*-4893-2057
>>     *Twitter: @HernanWilkinson*
>>     *site: http://www.10Pines.com <http://www.10pines.com/>*
>>     Address: Alem 896, Floor 6, Buenos Aires, Argentina
>
>
>     -- 
>     Juan Vuletich
>     www.cuis-smalltalk.org  <http://www.cuis-smalltalk.org>
>     https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
>     https://github.com/jvuletich
>     https://www.linkedin.com/in/juan-vuletich-75611b3
>     @JuanVuletich
>
>
>
> -- 
> *Hernán Wilkinson
> Agile Software Development, Teaching & Coaching*
> *Phone: +54-011*-4893-2057
> *Twitter: @HernanWilkinson*
> *site: http://www.10Pines.com <http://www.10pines.com/>*
> Address: Alem 896, Floor 6, Buenos Aires, Argentina


-- 
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
@JuanVuletich

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20190705/9399d13c/attachment.htm>


More information about the Cuis-dev mailing list