git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Garbage collection creates many unpacked objects.

From
Shawn Pearce <spearce@spearce.org>
Date
Oct 10, 2011, 23:49 UTC
Message-ID
<CAJo=hJtGyaudyL63AcaG=y4fvfO8Ka3pn=Orta-imb6AUXO6XA@mail.gmail.com>
In-Reply-To
<201110101730.43302.mfick@codeaurora.org>
On Mon, Oct 10, 2011 at 16:30, Martin Fick <mfick@codeaurora.org> wrote:
Show 9 quoted lines
> If I clone linus' kernel, delete all the tags, and then run
> git gc, it ends up expanding into about 5K of unpacked
> objects.  The .git size goes from 473M to 511M.  This seems
> a bit strange no?  Shouldn't gcing yield a smaller repo an
> fewer unpacked refs?
>
> If I do this on our internal kernel repo (which has 2Ktags),
> it gets much more pathological, it expands to about 1M
> objects and grows to about 7G!!!

This is caused by unreachable objects being evicted from packs and stored as loose objects for up to 2 weeks, until the next `git prune` run. I think you can avoid this by using `git repack -a -d` instead of `git gc`, but at the risk that a concurrent modification of the repository may result in corruption due to a race condition between the object being needed, and the object being deleted.

Previous: Martin Fick
Message 2 of 2 in “Garbage collection creates many unpacked objects.”
  1. Martin FickOct 10, 2011
  2. Shawn PearceOct 10, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.