From: Johannes Schindelin Date: Mon, 14 Jul 2008 12:25:54 GMT Subject: Re: [PATCH 0/4] Honor core.deltaBaseCacheLimit during index-pack Message-ID: In-Reply-To: <487B439F.8040902@op5.se> Hi, On Mon, 14 Jul 2008, Andreas Ericsson wrote: > Sorry for being clueless here, but why does the older versions need > to be kept in-memory anyway? Aren't we applying the delta each time > we find one, repeatedly creating a new base-object in-memory for > each delta? If we aren't doing that, why do we need more than just > a small amount of memory just for keeping the delta? Think of a delta chain of 49 delta objects, 1 base object. Now reconstruct all of the objects. If you do it one by one, not storing the intermediate results, you end up applying 1 delta for the first, 2 for the second (first the first, then the second), and so on, in total 1 + 2 + 3 + ... + 49 = 49 * 50 / 2 = 1225 times. Compare that to the 49 times when reusing the intermediate results. Ciao, Dscho