Re: cvs checkout fails in directory that can be accessed via both textmode and binmode mounts
Hi Pierre, You have exposed an old bug in Cygwin. [...] I am wondering why the bug is not exposed in 1.5.9 Care to strace it? Well, the same thing happens in: cygwin 1.5.9 / cvs 1.11.6-3 cygwin 1.5.5 / cvs 1.11.6-3 I guess that I either checked out this directory somewhere else and moved it later or checked out in bin mode and converted endlines by hand or used even older version of cygwin/cvs (I don't remember, it was year ago). cvs co did work differently in 1.5.10 because this bug was masked by other one. It has been reexposed in 20040530 snapshot. Best regards, Jacek. -- 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/
Re: cvs checkout fails in directory that can be accessed via both textmode and binmode mounts
Jacek Trzmiel wrote: $ mkdir /testmnt/cygwin/test $ cd /testmnt/cygwin/test $ cvs -d /testmnt/cvsrep co prj : No such file or directoryirectory /testmnt/cvsrep/prj cvs checkout: skipping directory prj Some additional info: cygwin 1.5.10-3: $ cvs -d /testmnt/cvsrep co prj Checkout does work, but all files are created with unix endlines (on textmode mount). 20040530 snapshot: $ cvs -d /testmnt/cvsrep co prj Error message displayed (there is lone CR at the end of path): cvs checkout: cannot open directory /testmnt/cvsrep/prjCR: No such file or directory cvs checkout: skipping directory prj Some files are created in /testmnt/cygwin/test/CVS, and they have windows endlines. 20040530 snapshot: Same command run as above, but preceded by strace: $ strace cvs -d /testmnt/cvsrep co prj Checkout does work like in 1.5.10-3 version (no errors displayed, unix endlines in all files). Heisenbug? Regards, Jacek. -- 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/
Re: cvs checkout fails in directory that can be accessed via both textmode and binmode mounts
On Thu, Jun 03, 2004 at 07:49:15PM +0200, Jacek Trzmiel wrote: Jacek Trzmiel wrote: $ mkdir /testmnt/cygwin/test $ cd /testmnt/cygwin/test snip 20040530 snapshot: Same command run as above, but preceded by strace: $ strace cvs -d /testmnt/cvsrep co prj Checkout does work like in 1.5.10-3 version (no errors displayed, unix endlines in all files). Heisenbug? In fact that's normal. When cygwin starts under strace it only knows the Windows current directory. In your (strange) environment, that directory can be mapped to two different Posix directories, one in bin mode and one in text mode. Cygwin doesn't know which one you mean to be in. Please try cd / strace -o trace.txt sh -c cd /testmnt/cygwin/test; cvs something choosing a something that displays the problem without generating a huge trace. Pierre -- 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/
Re: cvs checkout fails in directory that can be accessed via both textmode and binmode mounts
Jacek Trzmiel wrote: Hi Pierre, In fact that's normal. When cygwin starts under strace it only knows the Windows current directory. Thanks for info. Please try cd / strace -o trace.txt sh -c cd /testmnt/cygwin/test; cvs something choosing a something that displays the problem without generating a huge trace. Attached result of: [EMAIL PROTECTED] / $ strace -o ~/strace2.out sh -c cd /testmnt/cygwin/test; cvs -d /testmnt/cvsrep co prj : No such file or directoryirectory /testmnt/cvsrep/prj cvs checkout: skipping directory prj You have exposed an old bug in Cygwin. This is what happens 245 146689 [main] cvs 696 open: open (./CVS/Entries, 0x602) 65 146754 [main] cvs 696 normalize_posix_path: src ./CVS/Entries 62 146816 [main] cvs 696 cwdstuff::get: posix /testmnt/cygwin/test/prj CVS/Entries is opened in text mode and /testmnt/cvsrep/prj is written to it 65 156719 [main] cvs 696 open: open (., 0x0) 68 156787 [main] cvs 696 normalize_posix_path: src . 60 156847 [main] cvs 696 cwdstuff::get: posix /testmnt/cygwin/test/prj 61 158197 [main] cvs 696 open: 6 = open (., 0x0) 63 158260 [main] cvs 696 chdir: dir '/home/sc0rp' 62 160106 [main] cvs 696 chdir: 0 = chdir() cygheap-cwd.posix '/test/prj' native 'c:\cygwin\test\prj' 61 160167 [main] cvs 696 fchdir: 0 = fchdir (6) The bug is that an fchdir does a chdir to the Windows path, which gets mapped to the wrong Posix path. 67 196039 [main] cvs 696 open: open (CVS/Entries, 0x0) 62 196101 [main] cvs 696 normalize_posix_path: src CVS/Entries 60 196161 [main] cvs 696 cwdstuff::get: posix /test/prj This time CVS/Entries is opened in binary mode and the filename is read with a final \r The fix is easy. I am wondering why the bug is not exposed in 1.5.9 Care to strace it? Pierre -- 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/