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

Re: gc getting called on each git command ... what's wrong?

From
Jakub Narebski <jnareb@gmail.com>
Date
Jun 15, 2011, 15:35 UTC
Message-ID
<201106151735.07137.jnareb@gmail.com>
In-Reply-To
<BANLkTi=w10KQ3MSd5YuYR+S=eMgywNTY-A@mail.gmail.com>
On Wed, 15 Jun 2011, Geoff Russell wrote:
Show 19 quoted lines
> On Thu, Jun 9, 2011 at 2:39 AM, Jakub Narebski <jnareb@gmail.com> wrote:
> > Peter Harris <git@peter.is-a-geek.org> writes:
> > > On Tue, Jun 7, 2011 at 9:33 PM, Geoff Russell wrote:
> > > >
> > > > As of today, almost every time I do a git command, gc is getting
> > > > invoked.
> > >
> > > >   There are 96 pack files.
> > >
> > > That's why. See gc.autopacklimit in "git help config" -- by default,
> > > git will gc if there are more than 50 pack files.
> >
> > Actually it looks like it is combination of this and packSizeLimit set
> > to 30M.  Git notices that it has too many packfiles, and tries to
> > repack them, but packlimit forces Git to split it into small
> > packfiles... and end up with more packfiles than limit anyway.
> 
> Thanks to everybody. This is exactly what was happening and the problems
> went away when I set the packSizeLimit higher ... 3000M
 
Why did you set packSizeLimit at all?
 
Show 8 quoted lines
> >
> > Perhaps git should notice that it has nonsensical combination of
> > options...
> 
> That would be nice. It should be reasonably easy to work out that the
> packSizeLimit will guarantee too many pack files after the gc.
> Disobeying a users wishes shouldn't be undertaken lightly, but sometimes
> we stuff up :) 

Well, git can simply notice that each except perhaps on file has size greater or equal to gc.packSizeLimit, and then ignore gc.autopacklimit hint, because repacking would not reduce number of packs, and not lower it below gc.autopacklimit.

If `git gc` is called interactively, we can warn user about this situation...
-- 
Jakub Narebski
Poland
Previous: Geoff RussellNext: Geoff Russell
Message 8 of 10 in “gc getting called on each git command ... what's wrong?”
  1. Geoff RussellJun 8, 2011
  2. Peter HarrisJun 8, 2011
  3. Drew NorthupJun 8, 2011
  4. Brandon CaseyJun 8, 2011
  5. Junio C HamanoJun 8, 2011
  6. Jakub NarebskiJun 8, 2011
  7. Geoff RussellJun 15, 2011
  8. Jakub NarebskiJun 15, 2011
  9. Geoff RussellJun 16, 2011
  10. Jakub NarebskiJun 16, 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.