git-annex/doc/bugs/Windows_file_timestamp_timezone_madness.mdwn
Joey Hess e213ef310f git-annex (5.20140717) unstable; urgency=high
* Fix minor FD leak in journal code. Closes: #754608
  * direct: Fix handling of case where a work tree subdirectory cannot
    be written to due to permissions.
  * migrate: Avoid re-checksumming when migrating from hashE to hash backend.
  * uninit: Avoid failing final removal in some direct mode repositories
    due to file modes.
  * S3: Deal with AWS ACL configurations that do not allow creating or
    checking the location of a bucket, but only reading and writing content to
    it.
  * resolvemerge: New plumbing command that runs the automatic merge conflict
    resolver.
  * Deal with change in git 2.0 that made indirect mode merge conflict
    resolution leave behind old files.
  * sync: Fix git sync with local git remotes even when they don't have an
    annex.uuid set. (The assistant already did so.)
  * Set gcrypt-publish-participants when setting up a gcrypt repository,
    to avoid unncessary passphrase prompts.
    This is a security/usability tradeoff. To avoid exposing the gpg key
    ids who can decrypt the repository, users can unset
    gcrypt-publish-participants.
  * Install nautilus hooks even when ~/.local/share/nautilus/ does not yet
    exist, since it is not automatically created for Gnome 3 users.
  * Windows: Move .vbs files out of git\bin, to avoid that being in the
    PATH, which caused some weird breakage. (Thanks, divB)
  * Windows: Fix locking issue that prevented the webapp starting
    (since 5.20140707).

# imported from the archive
2014-07-17 11:27:25 -04:00

31 lines
1.4 KiB
Markdown

Windows has an unfortunate handling of time zones, which means that when
the time zone is changed (or DST changes), the timestamps of files also
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.
[[!tag confirmed]]
> 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]]