On 15 December 2010 19:30, Eliot Miranda <eliot.mira...@gmail.com> wrote:
>
>
> On Wed, Dec 15, 2010 at 5:23 AM, Peter van Rooijen <pe...@vanrooijen.com>
> wrote:
>>
>> On Fri, 10 Dec 2010 21:11:47 +0100, Eliot Miranda
>> <eliot.mira...@gmail.com> wrote:
>>
>> Note that not writing source to the changes file has ancilliary benefits;
>> change recovery is now not polluted with package loads and the changes
>> file
>> does not grow as packages are added, only as one's changes are made.
>> Unloading a package doesn't leave garbage in the changes files.
>>
>> There are downsides.  Deploying a development image means deploying all
>> the
>> associated parcel source files as well, and for this a
>> platform-independent
>> Filename abstraction really helps.
>>>
>>> Thanks for the explanation. I wonder how the previous versions of a
>>> method can be found using parcels.
>>
>> I hacked a dreadful implementation of overrides in vw3.0 and I don't think
>> things are much better now.  But
>> in http://www.mail-archive.com/pharo-project@lists.gforge.inria.fr/msg17714.html
>> I sketched how I think it should be done:
>> Maintain a global package load order (a stack of loaded packages, removing
>> interior elements on unload).
>> Maintain a dictionary from method reference to set of package/method pairs
>> for each method that is overridden.
>> When a package is removed search overrides and compute the overridden
>> methods to be reinstalled, computing the uppermost method depending on the
>> new package order.
>> So to answer your question, one finds the previous versions directly in
>> the overrides dictionary, and sorts the results according to the current
>> package load order.
>>
>> Wasn't Levente asking about "regular" replacing of methods?
>>
>> I thought his question was about that; if the source is not in
>>
>> the changes file but in a parcel source file, then when I save
>>
>> a new version of a method and want to look for the old one,
>>
>> that will not be in the changes file.
>
> No.  Anything you write goes on the changes files including new method
> definitions, doits, reorganizations, method removals class removals etc.
>
>>
>> When I build up a new image
>>
>> from parcels, the load script copies all the sources to the
>>
>> changes file, so I have easy access to the history.
>
> Why bother?  A published parcel is an immutable versioned artifact.  It
> doesn't change over time, so, like a release sources file, one can always
> rely on its contents.

+1
Instead of putting all methods and classes from package into .changes
it could be just a simple doit, like:
MC load: 'blahblah.mcz'


It could be somewhat different during merge.

> HTH
> Eliot



-- 
Best regards,
Igor Stasenko AKA sig.

Reply via email to