git-annex/Remote
Joey Hess 73df633a62
omit inode from ContentIdentifier for directory special remote
Directory special remotes with importtree=yes now avoid unncessary overhead
when inodes of files have changed, as happens whenever a FAT filesystem
gets remounted.

A few unusual edge cases of modifications won't be detected and
imported. I think they're unusual enough not to be a concern. It would
be possible to add a config setting that controls whether to compare
inodes too, but does not seem worth bothering the user about currently.

I chose to continue to use the InodeCache serialization, just with the
inode zeroed. This way, if I later change my mind or make it
configurable, can parse it back to an InodeCache and operate on it. The
overhead of storing a 0 in the content identifier log seems worth it.

There is a one-time cost to this change; all directory special remotes
with importtree=yes will re-hash all files once, and will update the
content identifier logs with zeroed inodes.

This commit was sponsored by Brett Eisenberg on Patreon.
2021-01-19 13:15:07 -04:00
..
Directory finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
External remove uses of warningIO 2020-12-02 14:57:43 -04:00
Helper don't support dropping from thirdPartyPopulated for now 2020-12-28 16:48:38 -04:00
List auto-init autoenable=yes 2020-05-27 12:40:35 -04:00
Rsync add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
WebDAV more RawFilePath 2019-12-18 17:10:28 -04:00
Adb.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
BitTorrent.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
Borg.hs don't support dropping from thirdPartyPopulated for now 2020-12-28 16:48:38 -04:00
Bup.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
Ddar.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
Directory.hs omit inode from ContentIdentifier for directory special remote 2021-01-19 13:15:07 -04:00
External.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
GCrypt.hs avoid crashing when there are remotes using unparseable urls 2021-01-18 14:59:08 -04:00
Git.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
GitLFS.hs avoid partial functions in Git.Url 2021-01-18 15:07:23 -04:00
Glacier.hs Behavior change: --trust-glacier option no longer overrides trust 2021-01-07 10:37:43 -04:00
Hook.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
HttpAlso.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
List.hs start borg special remote 2020-12-18 16:03:51 -04:00
P2P.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
Rsync.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
S3.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
Tahoe.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
Web.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00
WebDAV.hs move untrust forcing from Logs.Trust into Remote 2020-12-28 15:22:10 -04:00