Re: Cygwin can't handle huge packfiles?
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Apr 3, 2006, 15:12 UTC
- Message-ID
- <Pine.LNX.4.63.0604031710440.9360@wbgn013.biozentrum.uni-wuerzburg.de>
- In-Reply-To
- <Pine.LNX.4.64.0604030730040.3781@g5.osdl.org>
Hi,
On Mon, 3 Apr 2006, Linus Torvalds wrote:
Show 14 quoted lines
> On Mon, 3 Apr 2006, Johannes Schindelin wrote: > > > > 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. > > Well, we could actually do a _real_ mmap on pack-files. The pack-files are > much better mmap'ed - there we don't _want_ them to be removed while we're > using them. It was the index file etc that was problematic. > > Maybe the cygwin fake mmap should be triggered only for the index (and > possibly the individual objects - if only because there doing a > malloc+read may actually be faster).
I hit the problem *only* with "git-whatchanged -p". Which means that the upcoming we-no-longer-write-temp-files-for-diff version should make that gitfakemmap() hack obsolete. (I have not checked whether there are other places where a file is mmap()ed and then used by a fork()ed process.)
Ciao, Dscho