git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Shawn O. PearceNext: Shawn O. Pearce
Message 8 of 69 in “Windows support”
  1. Dmitry KakurinJul 25, 2007
  2. Johannes SchindelinJul 25, 2007
  3. Asger Ottar AlstrupAug 2, 2007
  4. Johannes SchindelinAug 2, 2007
  5. Steven GrimmJul 25, 2007
  6. Dmitry KakurinJul 26, 2007
  7. Shawn O. PearceJul 26, 2007
  8. Steffen ProhaskaJul 26, 2007
  9. Shawn O. PearceJul 26, 2007
  10. Marius Storm-OlsenJul 26, 2007
  11. Marius Storm-OlsenJul 26, 2007
  12. Steven GrimmJul 26, 2007
  13. Steven GrimmJul 25, 2007
  14. Nguyen Thai Ngoc DuyJul 25, 2007
  15. Johannes SchindelinJul 25, 2007
  16. Nguyen Thai Ngoc DuyJul 25, 2007
  17. Johannes SchindelinJul 25, 2007
  18. Christian MICHONJul 26, 2007
  19. Nguyen Thai Ngoc DuyJul 26, 2007
  20. Christian MICHONJul 26, 2007
  21. Nguyen Thai Ngoc DuyJul 26, 2007
  22. Johannes SixtJul 26, 2007
  23. Dmitry KakurinJul 26, 2007
  24. Junio C HamanoJul 26, 2007
  25. Shawn O. PearceJul 26, 2007
  26. Junio C HamanoJul 26, 2007
  27. Johannes SchindelinJul 26, 2007
  28. Han-Wen NienhuysJul 26, 2007
  29. Johannes SchindelinJul 26, 2007
  30. Han-Wen NienhuysJul 26, 2007
  31. Shawn O. PearceJul 26, 2007
  32. Han-Wen NienhuysJul 26, 2007
  33. Jakub NarebskiJul 26, 2007
  34. Julian PhillipsJul 26, 2007
  35. Nguyen Thai Ngoc DuyJul 26, 2007
  36. Christian MICHONJul 26, 2007
  37. Nguyen Thai Ngoc DuyJul 26, 2007
  38. Johannes SchindelinJul 26, 2007
  39. Nguyen Thai Ngoc DuyJul 26, 2007
  40. Johannes SchindelinJul 26, 2007
  41. Nguyen Thai Ngoc DuyJul 26, 2007
  42. David KastrupJul 26, 2007
  43. Nguyen Thai Ngoc DuyJul 26, 2007
  44. David KastrupJul 26, 2007
  45. Johannes SchindelinJul 26, 2007
  46. Marius Storm-OlsenJul 26, 2007
  47. Nguyen Thai Ngoc DuyJul 26, 2007
  48. Christian MICHONJul 26, 2007
  49. Robin RosenbergJul 26, 2007
  50. Johannes SixtJul 26, 2007
  51. Johannes SchindelinJul 26, 2007
  52. Dmitry KakurinJul 26, 2007
  53. Shawn O. PearceJul 26, 2007
  54. Johannes SchindelinJul 26, 2007
  55. Henning RoggeJul 26, 2007
  56. Andy ParkinsJul 26, 2007
  57. Steffen ProhaskaJul 25, 2007
  58. Noel GrandinJul 25, 2007
  59. Johannes SchindelinJul 26, 2007
  60. Junio C HamanoJul 26, 2007
  61. Stephen CuppettJul 25, 2007
  62. Russ DillJul 25, 2007
  63. Medve Emilian-EMMEDVE1Jul 25, 2007
  64. Russ DillJul 25, 2007
  65. Linus TorvaldsJul 25, 2007
  66. Wincent ColaiutaJul 25, 2007
  67. Marius Storm-OlsenJul 26, 2007
  68. Shawn O. PearceJul 26, 2007
  69. Daniel BarkalowJul 25, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.