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

Re: Slow git pushes: sitting 1 minute in pack-objects

From
Jeff King <peff@peff.net>
Date
Mar 19, 2015, 21:07 UTC
Message-ID
<20150319210731.GA8363@peff.net>
In-Reply-To
<CAH8BJxErCMk1JQMMKm9_j4bckB7bEVB+r28_zYovE=pe1nUa_Q@mail.gmail.com>
On Thu, Mar 19, 2015 at 04:31:36PM -0400, Stephen Morton wrote:
Show 9 quoted lines
> > Hmm. The "push" process must feed the set of object boundaries to
> > "pack-objects" so it knows what to pack (i.e., what we want to send, and
> > what the other side has).
> >
> > 120,000 is an awfully large number of objects to be pass there, though.
> > Does the repo you are pushing to by any chance have an extremely large
> > number of refs (e.g., on the order of 120K tags)?
> 
> No. There are on the order of 9,500 refs (mostly tags) but nowhere near 120k.

I think you mentioned that it uses alternates to share objects with other repos. Does the repository (or repositories) pointed to by the alternates file have a large number of refs (especially distinct refs, as I think modern git will squelch duplicate sha1s).

Show 5 quoted lines
> It did _not_ happen in a new clone --a push took just 5s -- and I
> think the culprit could have been "repack.writebitmaps=true". Although
> I had thought writebitmaps was not originally enabled, I now suspect
> that it was. Let me follow up on that first, before I recompile git
> with your changes.

It's certainly possible that bitmaps have an impact here. They should not contribute to the 120K objects being passed to pack-objects, but it's possible that size is a red herring (or possibly the number of objects is choking something in the bitmap code path that does not have problems otherwise).

-Peff
Previous: Stephen Morton
Message 8 of 8 in “Slow git pushes: sitting 1 minute in pack-objects”
  1. Stephen MortonMar 5, 2015
  2. Duy NguyenMar 6, 2015
  3. Stephen MortonMar 6, 2015
  4. Jeff KingMar 9, 2015
  5. Stephen MortonMar 10, 2015
  6. Jeff KingMar 16, 2015
  7. Stephen MortonMar 19, 2015
  8. Jeff KingMar 19, 2015

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.