On Aug 3, 2013, at 2:13 AM, Eliot Miranda <eliot.miranda@gmail.com> wrote:
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.
Ahh⦠that explains why it wastes so much memory.
I have some code handy if you'd like, but its not a hard thing to do.
If you have it I would be interested⦠I have added the information to https://pharo.fogbugz.com/f/cases/2711 Marcus