Subject: Re: fetching packs and storing them as packs

From: Eran Tromer <[email-masked]>
Date: Fri, 27 Oct 2006 00:09:13 +0200

Hi,

On 2006-10-26 17:08, Nicolas Pitre wrote:
> On Thu, 26 Oct 2006, Eran Tromer wrote:
>> This creates a race condition w.r.t. "git repack -a -d", similar to the
>> existing race condition between "git fetch --keep" and
>> "git repack -a -d". There's a point in time where the new pack is stored
>> but not yet referenced, and if "git repack -a -d" runs at that point it
>> will eradicate the pack. When the heads are finally updated, you get a
>> corrupted repository.
> 
> And how is it different from receiving a pack through git-unpack-objects 
> where lots of loose objects are created, and git-repack -a -d removing 
> those unconnected loose objects before the heads are updated?

git-repack -a -d does not touch unconnected loose objects.
It removes only unconnected packed objects.

Only git-prune removes unconnected loose objects, and that's documented
as unsafe.