Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com To: cygwin AT cygwin DOT com From: Alejandro Lopez-Valencia Subject: Re: Pserver on cygwin corrupts binary files Date: Tue, 17 Feb 2004 18:16:05 -0500 Organization: House of Cuckoo Lamasery Lines: 68 Message-ID: References: <00d101c3f583$8a14dd90$6500a8c0 AT Ray> <00d601c3f586$d59e25c0$6500a8c0 AT Ray> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: usenet AT sea DOT gmane DOT org Keywords: Has control X-Headers X-Gmane-NNTP-Posting-Host: ixde16782-196.pool.007mundo.com X-Archive: encrypt Mail-Copies-To: never X-Newsreader: Forte Agent 2.0/32.640 On Tue, 17 Feb 2004 12:49:50 -0600, Chuck Irvine wrote in <00d601c3f586$d59e25c0$6500a8c0 AT Ray>: Hi Chuck, [in answer to something I wrote irately before my morning coffee you wrote] >I don't believe that this is my problem. I'm having this problem with >jar files and I do have "*.jar -k 'b'" among other entries in my >cvswrappers file. Also, if this were the problem, I would expect to have >the same problem when going through cvs locally, but cvs local mode >works fine. The problem is just with pserver. Exactly my point. See below, as I said: >>Furthermore, using textmode mounts in cygwin main filesystem structure >>is asking for trouble. Because when using textmode, cygwin changes the semantics of I/O functions in the underlying C runtime. It does (and forces) EOL conversion on all files read and written to the filesystem as well as *sockets* and *pipes* for all applications compiled with the runtime. Of course, CVS will honor the sticky binary setting if both server and client are in the same filesystem because they have the same underlying I/O settings, but over a network things can and will turn sour, as you have experienced yourself already. If the remote server is straight (Unix[-like]), it means that the cygwin-based client is not honoring the binary flags sent by the server over the wire. Could be considered a bug in the runtime, but I've seen so much botched I/O code in Unix applications (particularly from those who have cut their programming teeth with Linux!) that this would need a full forensic enquiry. >I used to use binary mode but I like to access my cvs workspace both >from the command line and using the built in client in my IDE >(NetBeans). I've been using textmode mounts for a very long time (3 >years) without any difficulties. I think there are parsimonous solutions. One the one hand. Use a win32 CVS client with NetBeans (the CVS project always makes available a win32 binary with client code enabled, see further down for more sugestions) and keep your repository in a server with a cygwin installed in a binmode filesystem. On the other hand. Ask yourself if Cygwin is really for you. Risking being completely wrong, I guess you use Cygwin because it has a CVS client? In such case, I encourage you to explore CVSNT (http://www.cvsnt.org/), a full win32 CVS client/server application forked from CVS several years ago. You can run your CVS server and clients in native win32 mode, with no EOL conversion nor file permision problems whatsoever as long as your server and clients data are on NTFS. Other projects that come to my mind that use CVSNT are WinCVS (http://www.cvsgui.org/ or whatever it is now, project at SourceForge) and TortoiseCVS (also a project at SourceForge, just use Google). The latter integrates CVS into the Windows Explorer and makes managing repositories and checkout directories as simple as pie. IMO, cvs under cygwin has its usefulness as long as you are managing your project Unix-style, and NetBeans is anything but Unix-style. Cheers Alejo PS. As I am not one of the regulars, I can afford not to write a jaded answer (yet :-). -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/