From: "Shawn O. Pearce" <spearce@spearce.org>
To: Stephen Cuppett <cuppett@gmail.com>
Cc: Steffen Prohaska <prohaska@zib.de>, git@vger.kernel.org
Subject: Re: Windows support
Date: Wed, 25 Jul 2007 23:36:05 -0400 [thread overview]
Message-ID: <20070726033605.GP32566@spearce.org> (raw)
In-Reply-To: <316a20a40707250958w1fe9f6fdn41d75ca704aeb9cd@mail.gmail.com>
Stephen Cuppett <cuppett@gmail.com> wrote:
> On 7/25/07, Steffen Prohaska <prohaska@zib.de> wrote:
>
> >Is it just that windows developer hate cygwin because it's to
> >complex to install or is there any severe limitation?
> >functionality? stability? performance?
>
> I actually have no problems with cygwin and find it works pretty well
> with git repositories. Starting the xserver to run git-gui is pretty
> annoying though.
I've never even tried to run it that way. I know the Cygwin packages
have two different Tcl/Tk binaries: one that is actually a hacked
up native Tcl/Tk (which uses native Win32 graphics) and one that
is a straightup recompile of the UNIX Tcl/Tk (which uses X11 only).
I only have the native Win32 Tcl/Tk installed, and thus run native
graphics.
An advantage of the native Tcl/Tk is just that, its native.
A downside is it is native. It doesn't use the Cygwin APIs for exec,
it directly goes through CreateProcess(). It doesn't use the Cygwin
APIs for file IO, it goes directly through the native Win32 stuff.
Which means it sometimes has a difficult time with Cygwin paths.
There are a few places in git-gui where I run `cygpath -w` just to
handle this.
I've also recently tested git-gui under the ActiveState Tcl
distribution. It ran, but for reasons unknown to me (I didn't
research it yet) the .git/info/exclude rules didn't apply when
git-gui spawned a `git ls-files --others` helper process.
I have considered doing a starkit of git-gui, msys based git
executables/dlls, and the ActiveState Tcl engine. That should give
users a single git-gui.exe that they can just download and launch,
no installation required. Haven't started it yet, partly because
I haven't finished removing the need for shell scripts to support
git-gui. I'm almost there, especially with Daniel Barkalow's work
on a native C fetch.
> Windows-based development teams are going to expect
> easy access to those kinds of tooling. Otherwise, the champion will
> be pushing a type of workflow change that would hinder adoption anyway
> and leave a sour taste for a long time.
I agree. They also want this thing called "explorer integration" or
something like that. I've never had good luck with cra^H^H^Hpackages
that install themselves into the Windows explorer UI. I would
probably never develop such a thing myself.
> I don't know if the performance problems are cygwin or not. More
> knowledgeable people might be able to answer, it's just what I'm
> observing right now. It could be more fundamental to the types of
> access being performed en masse on inode-based versus NTFS systems.
As Linus described its NTFS/Windows that is horrid here, and not
really Cygwin. Linux is just fast. Almost all modern UNIXes are.
At least when compared to the Windows kernel running on a crappy
4500 RPM IDE drive that is also hampered with a virus scanner that
wants to scan 12 GiB of data every 30 minutes, even when the volume
has only 8 GiB of files on it. ;-)
Git is fast. Its faster than SVN on the same hardware. Even under
Windows. About the only thing that I think is "slow" is two areas:
* status. Doing lstat() on 8,000+ files takes a little while.
Hooking into the OS' native file monitoring facility and having
that tell us which files are stat-dirty would reduce the need
for these massive lstat() runs.
* for-each-ref. Opening 400 ref files to read their current SHA-1
values is not fast on Windows. More aggressively packing refs
(at least on Windows) may actually be worthwhile. Another option
might be to have the same process that is watching the OS' file
monitoring interface cache the ref values, so we can get to them
via say shared memory or a pipe instead of file IO.
Neither feature is really necessary on a good UNIX however, as most
kernel development teams have just made sure their system has good
file IO throughput. Oh, and they don't have to run virus scanners
that get higher IO priority than everything else.
--
Shawn.
next prev parent reply other threads:[~2007-07-26 3:36 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-25 10:35 Windows support Dmitry Kakurin
2007-07-25 10:40 ` Johannes Schindelin
2007-08-02 6:57 ` Asger Ottar Alstrup
2007-08-02 10:45 ` Johannes Schindelin
2007-07-25 11:12 ` Steven Grimm
2007-07-26 2:56 ` Dmitry Kakurin
2007-07-26 3:15 ` Shawn O. Pearce
2007-07-26 6:25 ` Steffen Prohaska
2007-07-26 6:53 ` Shawn O. Pearce
2007-07-26 9:41 ` Marius Storm-Olsen
2007-07-26 9:44 ` Marius Storm-Olsen
2007-07-26 5:11 ` Steven Grimm
2007-07-25 11:13 ` Steven Grimm
2007-07-25 12:13 ` Nguyen Thai Ngoc Duy
2007-07-25 14:10 ` Johannes Schindelin
2007-07-25 14:15 ` Nguyen Thai Ngoc Duy
2007-07-25 17:13 ` Johannes Schindelin
2007-07-26 13:00 ` Christian MICHON
2007-07-26 13:20 ` Nguyen Thai Ngoc Duy
2007-07-26 13:32 ` Christian MICHON
2007-07-26 13:55 ` Nguyen Thai Ngoc Duy
2007-07-26 15:25 ` Johannes Sixt
2007-07-26 2:26 ` Dmitry Kakurin
2007-07-26 3:06 ` Junio C Hamano
2007-07-26 3:18 ` Shawn O. Pearce
2007-07-26 4:30 ` Junio C Hamano
2007-07-26 5:28 ` Johannes Schindelin
2007-07-26 5:56 ` Han-Wen Nienhuys
2007-07-26 6:40 ` Johannes Schindelin
2007-07-26 7:02 ` Han-Wen Nienhuys
2007-07-26 7:13 ` Shawn O. Pearce
2007-07-26 7:18 ` Han-Wen Nienhuys
2007-07-26 21:39 ` Jakub Narebski
2007-07-26 7:52 ` Julian Phillips
2007-07-26 11:29 ` Nguyen Thai Ngoc Duy
2007-07-26 12:21 ` Christian MICHON
2007-07-26 12:37 ` Nguyen Thai Ngoc Duy
2007-07-26 14:37 ` Johannes Schindelin
2007-07-26 15:07 ` Nguyen Thai Ngoc Duy
2007-07-26 15:43 ` Johannes Schindelin
2007-07-26 16:11 ` Nguyen Thai Ngoc Duy
2007-07-26 18:13 ` David Kastrup
2007-07-26 19:39 ` Nguyen Thai Ngoc Duy
2007-07-26 20:04 ` David Kastrup
2007-07-26 18:18 ` Johannes Schindelin
2007-07-26 16:58 ` Marius Storm-Olsen
2007-07-26 19:43 ` Nguyen Thai Ngoc Duy
2007-07-26 20:02 ` Christian MICHON
2007-07-26 9:11 ` Robin Rosenberg
2007-07-26 10:35 ` Johannes Sixt
2007-07-26 3:38 ` Johannes Schindelin
2007-07-26 3:54 ` Dmitry Kakurin
2007-07-26 4:00 ` Shawn O. Pearce
2007-07-26 5:30 ` Johannes Schindelin
2007-07-26 6:08 ` Henning Rogge
2007-07-26 8:14 ` Andy Parkins
2007-07-25 12:30 ` Steffen Prohaska
2007-07-25 15:34 ` Noel Grandin
2007-07-26 6:46 ` Johannes Schindelin
2007-07-26 6:48 ` Junio C Hamano
2007-07-25 16:58 ` Stephen Cuppett
2007-07-25 17:56 ` Russ Dill
2007-07-25 19:04 ` Medve Emilian-EMMEDVE1
2007-07-25 19:13 ` Russ Dill
2007-07-25 18:43 ` Linus Torvalds
2007-07-25 22:52 ` Wincent Colaiuta
2007-07-26 9:30 ` Marius Storm-Olsen
2007-07-26 3:36 ` Shawn O. Pearce [this message]
2007-07-25 17:41 ` Daniel Barkalow
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070726033605.GP32566@spearce.org \
--to=spearce@spearce.org \
--cc=cuppett@gmail.com \
--cc=git@vger.kernel.org \
--cc=prohaska@zib.de \
/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.
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 NNTP newsgroup(s).