Re: WARNING: THIS PATCH CAN BREAK YOUR REPO, was Re: [PATCH 2/3] Only repack active packs by skipping over kept packs.
- From
Shawn Pearce <spearce@spearce.org>
- Date
- Oct 30, 2006, 19:23 UTC
- Message-ID
- <20061030192339.GA5504@spearce.org>
- In-Reply-To
- <Pine.LNX.4.64.0610301332440.11384@xanadu.home>
Nicolas Pitre <nico@cam.org> wrote:
Show 8 quoted lines
> On Sun, 29 Oct 2006, Shawn Pearce wrote: > > > During `git repack -a -d` only repack objects which are loose or > > which reside in an active (a non-kept) pack. This allows the user > > to keep large packs as-is without continuous repacking and can be > > very helpful on large repositories. > > Something is really broken here.
Holy cow. Since this is now in 'next', 'next' is now seriously broken if you have a .keep file.
> So... what is the --unpacked=<pack>.pack switch supposed to mean? It is > not documented anywhere and it certainly doesn't produce the expected > result with a repack.
Junio introduced --unpacked=<pack>.pack a while ago for this application. What it does is skip an object unless its a loose object file or it is in the named pack. The idea being that pack-objects would only consider object files which are loose or ready to be repacked.
In your example above we should have copied all objects from your first pack into the new pack during the final destructive repack, but we didn't. I don't know why.