Hi Marcus, On Thu, Aug 1, 2013 at 12:33 AM, Marcus Denker <[email protected]> wrote: > > On Aug 1, 2013, at 8:56 AM, Stéphane Ducasse <[email protected]> > wrote: > >> since years marcus is telling that MC storing ancestor information is doomed >> but we do not have something to really replace it. >> > > This is yet another thing. > > Monticello keep all history data of all package in image, this is not a > cache. When you delete it, your package loses > it's history and you can not merge anymore. > > MCVersionInfo allInstances do: [ :each | each instVarNamed: 'ancestors' put: > nil ].
When I looked at this I noticed that there was lots of duplicate entries in the ancestry list. I *think* this happens on merge. I think one ends up with each of the ancestries of the merged packages after a merge, i.e. when merging near the head one effectively doubles the ancestry. I think Monticello should unique the ancestry, either after a merge, or better still, before saving. This I think will shrink the space taken by ancestry significantly. I have some code handy if you'd like, but its not a hard thing to do. > > We did that on Pharo2 release and it saved 8MB (nearly a third of the image). > > Marcus -- best, Eliot
