From: Linus Torvalds <torvalds@osdl.org>
To: Davide Libenzi <davidel@xmailserver.org>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Peter TB Brett <peter@peter-b.co.uk>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: git 0.99.7b doesn't build on Cygwin
Date: Sat, 24 Sep 2005 11:10:14 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.58.0509241102450.3308@g5.osdl.org> (raw)
In-Reply-To: <Pine.LNX.4.63.0509232220330.30718@localhost.localdomain>
On Fri, 23 Sep 2005, Davide Libenzi wrote:
>
> If you have only to run diff/patch, just use the native Win32 CreateProcess().
> You abstract that on a git_exec(), and you use fork/exec on Unix and
> CreateProcess() on Winblows. If fork() is slow on Cygwin, fork+exec is
> pathetic. They do all that work to give you a fork(), and you throw it
> away with an exec().
CreateProcess doesn't work all that well, since we want to dup file
descriptors around and close them in the child.
In general, CreateProcess() is a totally crap interface. I realize it's
common (and especially in the VMS/Windows world it's how things are done),
but hey, at that point it's better if somebody just waits until git is
stable, and just makes a totally separate "git for windows" thing. The
interfaces are certainly simple. There's no point in trying to maintain
one tree.
However, vfork() really _is_ a nice interface. It's faster even on UNIX,
and at least in theory it should be possible to do an efficient vfork()
implementation on top of crap like windows. Does cygwin support that well?
Yes, git uses lots of filesystem stuff, and they suck under windows. Maybe
cygwin adds its own overhead, but from everything I've ever been able to
tell, filesystem access sucks under Windows regardless of any cygwin
stuff. Add to an already slow FS interface the fact that virus checkers
tend to hook into it and make it _even_slower_, and hey, you have a truly
sucky OS.
But at least with pack-files, the filesystem access patterns are much
less common. Opening one pack-file and mapping it gets the FS out of the
way. So I don't think that's necessarily a huge problem.
Linus
next prev parent reply other threads:[~2005-09-24 18:10 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-23 13:33 git 0.99.7b doesn't build on Cygwin Peter TB Brett
2005-09-23 13:44 ` Johannes Schindelin
2005-09-23 13:50 ` Peter TB Brett
2005-09-23 22:08 ` Martin Langhoff
2005-09-23 22:34 ` Petr Baudis
2005-09-24 0:09 ` Linus Torvalds
2005-09-24 0:43 ` Linus Torvalds
2005-09-25 7:52 ` Junio C Hamano
2005-09-25 15:47 ` Implementing diff, was " Johannes Schindelin
2005-09-25 16:08 ` Davide Libenzi
2005-09-25 17:00 ` Linus Torvalds
2005-09-25 19:16 ` Davide Libenzi
2005-09-24 1:13 ` Johannes Schindelin
2005-09-24 2:46 ` Linus Torvalds
2005-09-24 3:04 ` Junio C Hamano
2005-09-24 5:26 ` Davide Libenzi
2005-09-24 18:10 ` Linus Torvalds [this message]
2005-09-24 19:12 ` Davide Libenzi
2005-09-24 20:31 ` Junio C Hamano
2005-09-24 21:28 ` Davide Libenzi
2005-09-24 21:46 ` Junio C Hamano
2005-09-24 21:47 ` Junio C Hamano
2005-09-24 21:52 ` Davide Libenzi
2005-09-24 22:26 ` Linus Torvalds
2005-09-24 22:27 ` Linus Torvalds
2005-09-25 16:59 ` Linus Torvalds
2005-09-26 19:33 ` Jon Loeliger
2005-09-26 20:23 ` Junio C Hamano
2005-09-24 22:41 ` Davide Libenzi
2005-09-25 19:59 ` Giuseppe Bilotta
2005-09-26 4:57 ` Junio C Hamano
2005-09-26 5:05 ` Davide Libenzi
2005-09-26 11:00 ` Giuseppe Bilotta
2005-09-26 21:54 ` H. Peter Anvin
2005-09-26 22:03 ` Davide Libenzi
2005-09-26 22:15 ` H. Peter Anvin
2005-09-25 3:04 ` Daniel Barkalow
2005-09-24 5:11 ` Davide Libenzi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.58.0509241102450.3308@g5.osdl.org \
--to=torvalds@osdl.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=davidel@xmailserver.org \
--cc=git@vger.kernel.org \
--cc=peter@peter-b.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).