Re: Keeping unreachable objects in a separate pack instead of loose?
- From
Nicolas Pitre <nico@fluxnic.net>
- Date
- Jun 12, 2012, 19:39 UTC
- Message-ID
- <alpine.LFD.2.02.1206121536570.23555@xanadu.home>
- In-Reply-To
- <20120612192318.GC16911@sigill.intra.peff.net>
On Tue, 12 Jun 2012, Jeff King wrote:
Show 18 quoted lines
> So the race window depends on the time it takes "git prune" to run. > > I wonder if git-prune could do a double-check of the refs. Something > like: > > 1. calculate reachability on all refs > > 2. read list of objects to prune, and make a list of unreachable ones > > 3. calculate reachability again (which should be very cheap, because > you can stop when you get to an object you have already seen) > > 4. Drop any objects found in (3) from the list in (2), and delete > items from your list > > But I think that still has a race where objects are created before > step 2, but are not actually referenced until after step 3. I think > doing it safely may actually require a repo-wide prune lock.
Yeah... that's what I was thinking too. Maybe we're making our life overly miserable by trying to avoid any locking here.
Nicolas