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

Re: large(25G) repository in git

From
Nicolas Pitre <nico@cam.org>
Date
Mar 25, 2009, 01:47 UTC
Message-ID
<alpine.LFD.2.00.0903242124470.26337@xanadu.home>
In-Reply-To
<49C9818A.9040507@brainfood.com>
On Tue, 24 Mar 2009, Adam Heath wrote:
Show 18 quoted lines
> Nicolas Pitre wrote:
> > On Tue, 24 Mar 2009, Adam Heath wrote:
> > 
> >> Sam Hocevar wrote:
> >>>    In your particular case, I would suggest setting pack.packSizeLimit
> >>> to something lower. This would reduce the time spent generating a new
> >>> pack file if the problem were to happen again.
> >> Yeah, saw that one, but *after* I had this problem.  The default, if
> >> not set, is unlimited, which in this case, is definately *not* what we
> >> want.
> > 
> > In your particular case, if the problem is actually what I think it is, 
> > the pack.packSizeLimit wouldn't have made any difference.  This setting 
> > affects local repacking only and has no effect what so ever on the push 
> > operation.
> 
> Ooh.  Care to enlighten those of us not blessed with git internal
> knowledge?
See my previous email for a likely explanation about your issue.

As to the pack.packSizeLimit setting: it is used when repacking only in order to avoid big packs on systems that might have issues dealing with large files. During a repack, if the currently produced pack is about to get over that limit, then the pack is closed and a new one is started. You therefore end up with many packs.

The transfer protocol used during a fetch or a push uses the pack format streamed over the network, but only one pack can be transferred that way. Maybe the reception of a pack during a network transfer should be split according to pack.packSizeLimit as well, but this is currently not implemented at all. No one complained about that either, so I'm guessing that splitting a large pack, if needed, by using 'git repack' after a clone/fetch is good enough.

Personally, I don't think actively splitting packs into smaller ones is that useful, unless you wish to archive them on a file system which cannot handle files larger than 2GB or the like.

> On another note, anyone have a goat I can buy, for the sacrifice?
Beware the wrath of Git...
Nicolas
Previous: Adam HeathNext: Marcel M. Cary
Message 14 of 16 in “large(25G) repository in git”
  1. Adam HeathMar 23, 2009
  2. Nicolas PitreMar 24, 2009
  3. Adam HeathMar 24, 2009
  4. Nicolas PitreMar 24, 2009
  5. Adam HeathMar 24, 2009
  6. Nicolas PitreMar 25, 2009
  7. david@lang.hmMar 24, 2009
  8. Andreas EricssonMar 24, 2009
  9. Adam HeathMar 24, 2009
  10. Sam HocevarMar 24, 2009
  11. Adam HeathMar 24, 2009
  12. Nicolas PitreMar 25, 2009
  13. Adam HeathMar 25, 2009
  14. Nicolas PitreMar 25, 2009
  15. Marcel M. CaryMar 26, 2009
  16. Adam HeathMar 26, 2009

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.