Having worked on it most of the weekend, I now have a build of cvs based on the sources for cvs-1-11-22 which seems to update correctly (without uploading many untouched files) with both old sandboxes (checked out back before the latest DST change), and with new sandboxes (checked out since the latest DST change).
I'm still testing it a bit longer, but when I'm satisfied that I haven't overlooked any cases, I will make a patch available. It may not work on FAT file systems, but I don't have one on which to test it. (hmmm, maybe I can find an old floppy drive somewhere.) I plan to also produce a little test program that makes the findings very reproducible and understandable. Here's a short summary. The current code in 1-11-22 that tries to correct the modification time reported by wnt_stat and wnt_lstat is only doing, at most, half of the job. utime is also at fault, recording time stamps in the file system that are an hour different than the unix time value passed to utime, under some circumstances. When I fixed wnt_stat, wnt_lstat and wnt_utime to ALWAYS set or get the time using Windows' GetFileTime and SetFileTime, and convert between Windows' FILETIME and unix time_t using formulas that involve neither time zone nor DST, the problems went away. -- Want an e-mail address like mine? Get a free e-mail account today at www.mail.com!
