<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
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.<br>
<br>
If both ways are included, then the user of the file can decide what
s(he) prefers.<br>
<br>
On 7/5/2019 10:11 AM, Hernan Wilkinson via Cuis-dev wrote:
<blockquote
cite="mid:CAJAbP8g9R3S3Am2yh5ByP4656fSN-zp4-AiYfq9wg5zJyogboQ@mail.gmail.com"
type="cite">
<div dir="ltr">Hi Eric,<br>
<div> 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.</div>
<div><br>
</div>
<div> 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. </div>
<div> 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 :-) )</div>
<div><br>
</div>
<div>Hernan.</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Jul 5, 2019 at 2:04 AM
Eric Brandwein via Cuis-dev <<a moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<div dir="ltr">
<div>Hi all,</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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?</div>
<div><br>
</div>
<div>Cheers,<br>
</div>
<div>Eric<br>
</div>
</div>
-- <br>
Cuis-dev mailing list<br>
<a moz-do-not-send="true" href="mailto:Cuis-dev@lists.cuis.st"
target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a moz-do-not-send="true"
href="https://lists.cuis.st/mailman/listinfo/cuis-dev"
rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div><span style="font-family:
tahoma,sans-serif; font-size: xx-small;
border-collapse: collapse;"><strong><span
style="font-size: 8pt;"><span><span
style="font-size: small;"><font
size="2"><span
style="font-weight: normal;"><span
style="font-weight: bold;">Hernán
Wilkinson</span><br>
Agile Software Development,
Teaching & Coaching</span></font></span></span></span></strong></span></div>
<div><span style="font-family:
tahoma,sans-serif; font-size: xx-small;
border-collapse: collapse;"><strong><span
style="font-size: 8pt;"><span><span
style="font-size: small;"><font
size="2"><span
style="font-weight: normal;">Phone:
+54-011</span></font></span></span></span></strong></span><font
size="2" face="tahoma, sans-serif">-4893-2057</font></div>
<div><strong style="font-family:
tahoma,sans-serif; font-size: xx-small;"><span
style="font-size: 8pt;"><span
style="font-size: small;"><font
size="2"><span style="font-weight:
normal;">Twitter:
@HernanWilkinson</span></font></span></span></strong></div>
<div><span style="font-family:
tahoma,sans-serif; font-size: xx-small;
border-collapse: collapse;"><strong><span
style="font-size: 8pt;"><span><span
style="font-size: small;"><font
size="2"><span
style="font-weight: normal;">site: <a
moz-do-not-send="true"
href="http://www.10pines.com/"
style="color: rgb(17, 65,
112);" target="_blank">http://www.10Pines.com</a></span></font></span></span></span></strong></span></div>
<div><font face="tahoma, sans-serif"><span
style="border-collapse: collapse;">Address:
Alem 896</span></font>, Floor 6,
Buenos Aires, Argentina</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
</body>
</html>