Re: Cygwin can't handle huge packfiles?
From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:42:23
Hi, On Mon, 3 Apr 2006, Kees-Jan Dijkzeul wrote:
I'm trying to get Git to manage a 5Gb source tree. Under linux, this works like a charm. Under cygwin, however, I run in to difficulties. For example: $ git-clone sgp-wa/ sgp-wa.clone fatal: packfile ./objects/pack/pack-56aa013a0234e198467ed37ae5db925764a6ee98.pack cannot be mapped. fatal: unexpected EOF fetch-pack from '/cygdrive/e/Projects/sgp-wa/.git' failed. To figure out what is happening, I printed the value of errno, which turns out to be 12 (Cannot allocate memory). I'm not sure how mmap is implemented in cygwin, but if they allocate memory and load the file into it, then this error is not surprising, as the pack file in question is 1.5Gb in size.
The problem is not mmap() on cygwin, but that a fork() has to jump through loops to reinstall the open file descriptors on cygwin. If the corresponding file was deleted, that fails. Therefore, we work around that on cygwin by actually reading the file into memory, *not* mmap()ing it. Hth, Dscho