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

Juan Vuletich juan at jvuletich.org
Fri Jul 5 08:20:11 PDT 2019


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
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/b681dc11/attachment-0001.htm>


More information about the Cuis-dev mailing list