This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Problem with daylight saving time, off by one hour


I've had Cygwin running on a Windows XP workstation for years using rsync
as my primary backup tool for my data files.  The workstation just crashed
with a hard drive failure, I've replaced the drive and so on.  Initially,
I was recovering most of the files with WinSCP (5.0.5) from the backup
server.

While this was going on, I was working on the script to recover the files
(essentially swapping the arguments to the rsync script I used for
backup).  As I was testing this on already-recovered files (via WinSCP) I
noticed that some needed to be transferred again.  To make a long story
short, rsync (via Cygwin) has a different sense of time than WinSCP or
Windows for files modified during summer time.

For example, the file 100_1164.JPG copied by WinSCP reports a timestamp of
2005-09-01 10:46, which is consistent with the EXIF data in the file, and
consistent with Windows XP's report of the time 10:46.

Meanwhile, rsync belives the file is different and looks to update it. 
Furthermore, ls reports the wrong time (via --full-time) as 11:46 -0400. 
Yes, ls has the right timezone offset (it was summer time in NYC on
2005-09-01), but the time itself is wrong.  Even when I precede the
command with TZ=UTC0, the UTC time reported by ls is wrong (says 15:46,
should be 14:46).

I've read previous posts on this problem in a variety of places and they
mostly suggest that one use "--modify-window=3601" or something like that
to make timestamps fuzzy.  In my opinion, that is the wrong solution
because the rsync client (i.e., the files being backed up) will record the
wrong time on the rsync server because the rsync client itself has the
wrong sense of time.  And, as I pointed out above, the ls command has the
same problem, too.

My sense is the implementation of the stat() system call is wrong because
even with the TZ set to UTC, it still reports the wrong time.

Now this all used to work nicely with Cygwin before.  I don't know exactly
the prior version of Cygwin, but I had downloaded it in 2006-11.

My present version of Cygwin, which was downloaded yesterday is: DLL
version: 1.7.11.  The current version of rsync is 3.0.9-1.

Is this fixed by a new release or a different configuration?  Please don't
respond with "windows is stupid" because (1) it's cygwin's job to figure
out these quirks with Windows, (2) other tools get this right (e.g.,
WinSCP), and (3) it used to work right on old versions of cygwin (I've
been using cywin rsync for at least a dozen years).  I have several
million files to back up (with integrity), so I need an rsync-like
solution.

Thank you, in advance, for your help and insight.

Frank Farance



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]