[V3dot10] making and recording changes

Bert Freudenberg bert at freudenbergs.de
Thu Jan 18 17:24:11 UTC 2007


Am Jan 18, 2007 um 16:58  schrieb Ralph Johnson:

> It occurred to me that we could use both MC and the update mechanism,
> because we could make change sets that just loaded a particular
> version from MC.  That way we could do most of the work in MC and
> still be able to use change files for those things that MC can't yet
> do.

As I wrote previously (though maybe not on this list), this is  
exactly how Tweak's update stream works.

In Tweak there are some classes for managing multiple update streams  
(one for base image, one for Tweak, etc.). Other than that, it just  
files in each update from

	http://squeakalpha.org/tweak/external/updates/updates.list

For example, when introducing Islands, which is a pretty fundamental  
system change, Andreas prepared one changeset to prepare the image  
for loading the MC stuff later:

	http://squeakalpha.org/tweak/external/updates/0553Islands-Preload.cs

This was followed by the actual bunch of modified MC packages:

	http://squeakalpha.org/tweak/external/updates/0554IslandsAdded.cs

Using MCConfigs this way is pretty much as efficient as changesets,  
because it only downloads differential MCs and avoids comparing the  
in-image version to the downloaded version (which is the major time  
consuming step when loading an MC package snapshot).

One problem with this approach is that when you sneak in changes  
bypassing MC, the package is marked "dirty". One would have to  
manually fix up the image afterwards, but also not overwrite changes  
made by a user (MCConfig>>upgrade is smart in the sense that if it  
finds a dirty package, it properly merges the new version, rather  
than just blindly loading the diff, as changesets would do).

- Bert -





More information about the V3dot10 mailing list