Re: Windows support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Stephen Cuppett <cuppett@xxxxxxxxx> wrote:
> On 7/25/07, Steffen Prohaska <prohaska@xxxxxx> 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.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux