Hi Marcus, On Thu, Aug 1, 2013 at 12:33 AM, Marcus Denker <marcus.denker@inria.fr> wrote:
On Aug 1, 2013, at 8:56 AM, Stéphane Ducasse <stephane.ducasse@inria.fr> 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