At this very moment, you might be wondering why, if CVS is such a wonderful piece of version control software that even offers to soothe your cross-platform end of line woes (*ix: eol = lf, macos: eol = cr, windows: eol = crlf), it’s suddenly breaking the end of line checkouts on the *ix side since you’ve been committing your ports on the windows side with CVS from Cygwin.
The answer is fortunately far shorter and simpler that the previous sentence. Cygwin also has to deal with the ugly text file / binary file distinction on Windows, and therein lies the problem. Make sure that any filesystem from whence you will be committing with Cygwin CVS is mounted with the textmode option (and not binmode). Running “mount” will tell you if this is the case or not.
If it isn’t, a simple “mount -f -t -s d: /cygwin/mount/point” should do the trick. See here for more detail.