[Pharo-project] May be some problems with MC history

Stéphane Ducasse stephane.ducasse at inria.fr
Fri Sep 11 15:33:08 EDT 2009

>> a couple of bugs when understanding the history based merge (ugly)
> It is not a merge operation, as I said in my mail. You are merely
> applying the changes representing a delta between two versions
> manually. That's all, no magic involved.

Yes I know, I did not mean merging. Sorry for the bad working,

>>        - adding the new method to a cs does not work if you did not  
>> install
>> the code before (ok)
>>        - class definition are not added (yeah) in the changeset.  
>> Really cool!
> I don't understand what this has to do with change-sets?

there is a menu item: 'add to changeset' and I wanted to generate a cs  
for each of the commit
because I wanted to be able to reload the work in another image to test.
And not load and fuck up and restart kind of scenario.

> Class definitions are part of the patch that is calculated by
> Monticello.

probably but when you use add to changesets they don't.

> My guess is that the class didn't change for the delta you
> calculated.

Yes this is what I discovered see below. Now I really understand the  
limits of the functionality.

> To illustrate, in the example above the changes between
> b.1 and b.2 don't show a class change that happened between a.1 and
> b.1, even if the delta depends on it.
> I use what I described all the time, it is maybe a bit tricky, but
> works really well.

I wanted to know if I can trust this functionality. So I did the  
following experiment and
I learned a lot and now I deeply understanding what you  mean :)

I took latest pharo
	ScriptLoader new addExtraRepositories

then you open the trunk repository and browse the monticello package

I checked the changes made in ar 321, did not see an instance variable  
called methodAdditions nor the initialize method modification.
  The previous version of initialize was made in 2007. I compare the  
history between md.308 july 2006 and rkrk.320 there I saw that the  
initialize methods was added. I added the 3.10 repository and I found  
that the method initialize was added in rej.309 in 310.

So now I understand and it would be nice to have a functionality to  
now when a change occurred. So now I can use
the history and yes we should really be cautious.
I wrote these emails so that other people can learn from it.

So thanks lukas.

PS: L'idee de l'experience ne remplace pas l'experience

So I'm happy I know more now :)

More information about the Pharo-dev mailing list