git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
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

  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).