Re: Windows support
- From
Steffen Prohaska <prohaska@zib.de>
- Date
- Jul 26, 2007, 06:25 UTC
- Message-ID
- <08588116-8E66-4F40-BC77-E0B272BE7776@zib.de>
- In-Reply-To
- <20070726031546.GN32566@spearce.org>
On Jul 26, 2007, at 5:15 AM, Shawn O. Pearce wrote:
Show 12 quoted lines
> Why Cygwin? Because I have to use Windows, but I'd rather use Linux. > No, Linux isn't permitted. And Solaris/x86 is only allowed on > "servers". I have yet to find a way to classify my desktop as > a server. :-| > > git-gui is fairly well supported under Cygwin, as I use it a lot > in my day-job. As do a lot of my coworkers. Which actually gives > me a pretty good testing ground; ~20 people all beating on git-gui > all day long is a pretty sizable testing group. I actually wonder > some days if git-gui is better tested on Cygwin than it is on Linux. > > But as has been stated on this thread, Cygwin isn't native Windows.
So apparently you're working in a reasonably sized group of people all testing git on cygwin. I'd be completely satisfied if git ran rock solid on cygwin.
I found the following list of warnings about cygwin in the wiki entry WindowsInstall [1]. Some points look quite scary to me.
What is your real-world experience? Are the warning still valid? Must I really fear to break cygwin if I press Ctrl-C?
Do I really need to reboot regularly? I don't think this is an option. Nowadays our Windows boxes run for months, too. I can't seriously tell people that they need to regularly reboot if they want to use git.
Here's the list, copied from http://git.or.cz/gitwiki/WindowsInstall
* Use git on local NTFS disks -- Network drives disks don't
support the filesystem semantics GIT needs; for interoperability
purposes you can store bare repositories on FAT32 disks.
* Be careful with the case in filenames. Similarly, avoid special
chars in filenames.
* Run git gc early and often. There are slowdowns with many
unpacked objects. Be careful to not create very big packfiles (bigger
than 2 Gb).
* Avoid using ActiveState Perl if possible. Ask in the
MailingLists if you must.
* Try to avoid interrupting (Ctrl-C) processes - it breaks cygwin.
* Consider setting core.fileMode to false (git repo-config
core.fileMode false) if file modes are frequently the only
differences detected by Git. Many Windows applications make the
execute bit be set in Cygwin when they save a file. Besides Cygwin
detects file mode by stupid combination of content analysis, file
name extension and moon phase.
* Insert "set CYGWIN=tty binmode" after the first line of C:
\cygwin\cygwin.bat, so you can use Ctrl-z in cygwin's bash to suspend
a program.
* Windows usually writes end-of-line as CRLF, while Unix/POSIX
writes LF. This can cause a variety of problems. There are current
efforts to address this.
* Setup binary mode for cygwin (there is an option in cygwin's
setup program), otherwise Cygwin mangles everything read and written
(Git repos have binary files in control structures).
* Avoid big repos.
* Avoid big blobs (very big files. Basically anything larger than
10Mb is too big).
* Avoid big trees (directories with many files in them).
* Avoid deep hierarchies.
* Reboot regularly (memory fragmentation)
* Defragment often (filesystems fragmentation)Steffen