Hi, I have been playing around with the new version and noticed a bit of a behaviour change that is causing me some grief and am wondering if this is a real bug or an intended behaviour change.
To make a long story short (long version follows), Windows clients can no longer distinguish between an active file and a deleted file where the only difference in the filename is case. This is a change in behaviour from CVS 1.11.5. The long version; use a real operating system (or at least some Unix or Linux variant) to create a test directory and some files: mkdir case cd case touch TESTFILE cvs -d .... import -mtesting sample VENDOR RELEASE Now (still on a real OS), delete the test file and add a new one with a different case: cvs -d ... co sample cd sample cvs rm -f TESTFILE touch testfile cvs add testfile cvs ci -m"changed case" All is fine and dandy when I try to check out this modified repository on a system with a case-sensitive filesystem, but when I try this on Windows, I get the following: cvs -t -d ... co sample -> main loop with CVSROOT=:pserver:...... -> Connecting to ..........:2401 S-> do_module (sample, Updating, , ) S-> do_module (sample, Updating, , ) -> Create_Admin (sample, sample, /temp/cvs/sample, , , 0, 0, 1) -> unlink(sample/CVS/Tag) S-> Create_Admin (., sample, /temp/cvs/sample, HEAD, , 0, 0, 1) S-> Parse_Info (/temp/cvs/CVSROOT/rcsinfo, sample, ALL) S<- Create_Admin S-> fopen(/temp/cvs/CVSROOT/history,a) -> unlink(CVS/Entries.Static) cvs server: Updating sample U sample/TESTFILE -> rename(.new.TESTFILE,TESTFILE) -> Register(TESTFILE, 1.1, Fri May 30 19:32:47 2003, , HEAD ) S-> unlink_file(./CVS/Entries.Static) S-> Reader_Lock(/temp/cvs/sample) S-> RCS_checkout (/temp/cvs/sample/TESTFILE,v, 1.1, HEAD, , (function)) S-> server_register(TESTFILE, 1.1, , , HEAD, , ) S-> Register(TESTFILE, 1.1, , , HEAD ) S-> RCS_checkout (/temp/cvs/sample/TESTFILE,v, 1.1, HEAD, , (function)) S-> server_register(testfile, 1.1, , , HEAD, , ) S-> Register(testfile, 1.1, , , HEAD ) S-> Lock_Cleanup() S-> rename(CVS/Entries.Backup,CVS/Entries) S-> unlink_file(CVS/Entries.Log) S-> rename(CVS/Entries.Backup,CVS/Entries) S-> unlink_file(CVS/Entries.Log) C sample/testfile cvs-1.11.5.exe checkout: move away sample/testfile; it is in the way -> rename(CVS/Entries.Backup,CVS/Entries) -> unlink(CVS/Entries.Log) cvs-1.11.5.exe checkout: dying gasps from ...... unexpected -> Lock_Cleanup() The version of the CVS client does not seem to matter and this exact same process works with a CVS 1.11.5 server. Does anyone have any suggestions? I was doing a bit of spelunking in the code and it seem to me that to restore the 1.11.5 behaviour, filesubr.c needs to have ign_case set to 0 in locate_file_in_dir (), ignoring the 'Case' command from the Windows client because even through Windows cannot tell the difference, the server can. However, that is definately not something I want to do as I do not undertsand the internals of CVS well enough to know what side effects that might have. Thanks for any insight or suggestions you can provide. - Rob -- Robert J. Clark Quest Software Software Developer [EMAIL PROTECTED] _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs