Subject: Re: [PATCH 1/3] builtin-pack-objects: don't fail, if delta is not possible

From: "Shawn O. Pearce" <[email-masked]>
Date: Mon, 28 May 2007 22:53:49 -0400

Nicolas Pitre <[email-masked]> wrote:
> On Mon, 28 May 2007, Martin Koegler wrote:
> 
> > If builtin-pack-objects runs out of memory while finding
> > the best deltas, it bails out with an error.
> > 
> > If the delta index creation fails (because there is not enough memory),
> > we can downgrade the error message to a warning and continue with the
> > next object.
> 
> In the same vain, there is one realloc() that was turned into a 
> xrealloc() in diff-delta.c.  I think this was a mistake and should 
> probably be a non fatal realloc again to let the caller go on.

And if those two calls fail to alloc their memory, they might want
to try calling the pack window gc thingy (release_pack_memory(need,
-1)) and then retry the alloc before they fail the delta generation.
Its possible that we are better off releasing the LRU pack window
and produce the delta, then to fail because we're hanging onto some
mmap we don't need...

And actaully release_pack_memory could get more aggressive now that
the index_data can be lazily loaded.  We could actually unload LRU
indexes too.

-- 
Shawn.