diff options
author | Joey Hess <joey@kitenet.net> | 2014-06-12 15:20:48 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-06-12 15:21:10 -0400 |
commit | 5755979af114f03b26084ce35156f0ccfe2875c0 (patch) | |
tree | ef36e019de405536dfc01571628fc0140e5c9e70 /doc/bugs/Windows_file_timestamp_timezone_madness.mdwn | |
parent | 811e57d0e7878ae9c14bc53c6b7b370abce515c5 (diff) | |
parent | 53d185f8be9db8a79c9d628b8be7f06bc0d14537 (diff) |
merge in windows loststamp branch
Diffstat (limited to 'doc/bugs/Windows_file_timestamp_timezone_madness.mdwn')
-rw-r--r-- | doc/bugs/Windows_file_timestamp_timezone_madness.mdwn | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/doc/bugs/Windows_file_timestamp_timezone_madness.mdwn b/doc/bugs/Windows_file_timestamp_timezone_madness.mdwn index fb0b08d9d..69e9838f2 100644 --- a/doc/bugs/Windows_file_timestamp_timezone_madness.mdwn +++ b/doc/bugs/Windows_file_timestamp_timezone_madness.mdwn @@ -5,15 +5,27 @@ appear to change. This means that after such a change, git-annex will see new mtimes, and want to re-checksum every file in the repo. -The best way to fix this seems to be to normalize the timestamp returned by -getFileStatus, which is relative to the current time zone, to be relative -to UTC. (As is always the case on Unix, of course). -However, to do that, I need to know the current timezone. +[[!tag confirmed]] -Unfortunately, Data.Time.LocalTime.getCurrentTimeZone doesn't seem to really -work on windows. It always returns a time zone 60 minutes from UTS in my tests, -no matter what the zone really is. I need to test this more widely and file -a GHC bug if appropriate. - -> [[fixed|done]], avoiding using getCurrentTime for now, although I have a -> patch to fix it too. --[[Joey]] +> Update: Actually, I seem to have been getting confused by behavior of +> cygwin terminal setting TZ. That indeed led to timestamp changes when the +> time zone changed. I have made git-annex unset TZ to avoid this. +> +> Without TZ set, time stamps are actually stable across time zone changes. +> Ie, a simple program to read the time stamp of a file and print it +> always shows the same thing, before and after a timezone change. +> +> However, and here's where it gets truely ghastly: A program that stats a +> file in a loop will see its timestamp change when the timezone changes. +> I suspect this might be a bug in the Haskell RTS caching something it +> should not. Stopping and re-running the program gets back to the +> original timestamp. +> +> I have not tested DST changes, but it's hard to imagine it being any +> worse than the above behavior. +> +> So, that's insane then. We can't trust timestamps to be stable on windows +> when git-annex is running for a long period of time. --[[Joey]] +> +> > [[fixed|done]], using the inode sentinal file to detect when windows +> > has lost its mind, and calculating its delta from insanity. --[[Joey]] |