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

Re: large(25G) repository in git

From
Sam Hocevar <sam@zoy.org>
Date
Mar 24, 2009, 21:04 UTC
Message-ID
<20090324210427.GC30959@zoy.org>
In-Reply-To
<49C7FAB3.7080301@brainfood.com>
On Mon, Mar 23, 2009, Adam Heath wrote:
Show 13 quoted lines
> We maintain a website in git.  This website has a bunch of backend
> server code, and a bunch of data files.  Alot of these files are full
> videos.
> 
> [...]
> 
> Last friday, I was doing a checkin on the production server, and found
> 1.6G of new files.  git was quite able at committing that.  However,
> pushing was problematic.  I was pushing over ssh; so, a new ssh
> connection was open to the preview server.  After doing so, git tried
> to create a new pack file.  This took *ages*, and the ssh connection
> died.  So did git, when it finally got done with the new pack, and
> discovered the ssh connection was gone.
   As stated several times by Linus and others, Git was not designed
to handle large files. My stance on the issue is that before trying
to optimise operations so that they perform well on large files, too,
Git should usually avoid such operations, especially deltification.
One notable exception would be someone storing their mailbox in Git,
where deltification is a major space saver. But usually, these large
files are binary blobs that do not benefit from delta search (or even
compression).
   Since I also need to handle large files (80 GiB repository), I am
cleaning up some fixes I did, which can be seen in the git-bigfiles
project (http://caca.zoy.org/wiki/git-bigfiles). I have not yet tried
to change git-push (because I submit through git-p4), but I hope to
address it, too. As time goes I believe some of them could make it into
mainstream Git.
   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.
Regards,
-- 
Sam.
Previous: Adam HeathNext: Adam Heath
Message 10 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.