[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