Re: Why repository grows after "git gc"? / Purpose of *.keep files?
- From
Mike Hommey <mh@glandium.org>
- Date
- May 13, 2008, 05:33 UTC
- Message-ID
- <20080513053306.GA18232@glandium.org>
- In-Reply-To
- <20080513001252.GB29038@spearce.org>
On Mon, May 12, 2008 at 08:12:52PM -0400, Shawn O. Pearce wrote:
Show 25 quoted lines
> Mike Hommey <mh@glandium.org> wrote: > > On Mon, May 12, 2008 at 11:03:04PM +0200, Mike Hommey wrote: > > > On Mon, May 12, 2008 at 11:24:14PM +0300, Teemu Likonen wrote: > > > > But I have experienced the same earlier with some other post-1.5.5 > > > > version so I believe you can reproduce this yourself. After cloning > > > > Linus's linux-2.6 repo its .git directory weights 209MB. After single > > > > "git pull" and "git gc" it was 298MB in my test. > > > > > > I noticed that a while ago: when repacking multiple packs when one has a > > > .keep file, the resulting additional pack contains too many blobs and > > > trees, contrary to when only packing loose objects: > > (...) > > > > That is, it seems to also contain all the blobs and subtrees for all the > > commits the pack contains, even when they already are in the pack having > > a .keep file. > > I've noticed this too. Like since day 1 when we added .keep. > But uh, nobody else complained and I forgot about it. > > My theory (totally unproven) is that the new pack has objects we > copied from the .keep pack, because those objects were the best > delta-bases for the loose objects we have deltafied and want to > store in the new pack. Except they aren't yet packed in the new > pack, so we pack them too. Tada, duplicates. :-\
Well, that does not seem delta related, since my testcase doesn't show deltas in the second pack.
Mike