[squeak-dev] Re: 3.10.2 Forever ? (was Re: How to get a Trunk
image)
Bert Freudenberg
bert at freudenbergs.de
Tue Sep 8 10:26:21 UTC 2009
On 08.09.2009, at 08:51, Colin Putney wrote:
>
> On 7-Sep-09, at 11:11 PM, Andreas Raab wrote:
>
>> Yes, that is equivalent to having a configuration map for every
>> update. Unfortunately it means that every single update consists of
>> two package commits; one for the contents and one for the meta
>> package (or config map).
>
> Right, dependencies and configuration maps are equivalent, and so
> far we've been using config maps. An oversight on my part.
>
> But it doesn't (necessarily) mean a commit of the config map for
> each package commit. Every time you make changes that span several
> packages (and I've seen quite a few of these in the commit
> messages), you can roll them into one config map commit. Or to
> reduce the overhead further, you could roll groups of unrelated
> changes into the same config map. What's the optimal tradeoff
> between overhead to create a new config map and the size of the
> delta between successive config maps?
>
> I suppose we *already* have a unique config map number that
> describes the state of the image. Maybe we just need to increase
> it's resolution a bit? Or just start using it as is?
Actually, the server would know the number of all commits ever done to
the trunk repo, simply by counting all the versions it has. That would
be a monotonically increasing number, not quite unlike a subversion
revision number. It may have to be a bit fancier than that to account
for deleted versions, but not much I would guess?
warning: hand-waving and thinking aloud ahead
To make it more like a subversion revision what would be needed is
getting back to a particular commit, that is, there would have to be a
way to get from a revision number to the versions associated with it.
This could be done by updating a config map whenever something is
committed and saving it under that revision number. The config map
would be "virtual" and simply record all the latest packages in the
repo without respect to load order, because the server has no way of
knowing that. This would rely on the repo usage as trunk, otherwise it
would not be sufficient to just record the latest versions, but all
versions would have to be associated with a revision number. Actually,
that might be even simpler - put the revision number in the meta data
for each submitted version. Voila. Then sorting by this number would
give the exact sequence of trunk commits. Or ... we actually *do* have
such an ordering already, in the upload time stamp. Wonder if it gets
updated when moving a package between repositories ... in any case,
old versions of the repo could simply be accessed by going to http://
s.s.o/trunk/123 which would filter out all versions after revision 123.
Or is this all silly talk? Entirely possible ;)
- Bert -
More information about the Squeak-dev
mailing list
|