git-annex/Utility
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 remove unused imports 2020-11-02 15:36:11 -04:00
DirWatcher
Env fix a annex.pidlock issue 2020-06-17 15:30:59 -04:00
LockFile Windows: Work around win32 length limits when dealing with lock files 2021-01-13 14:38:35 -04:00
LockPool more RawFilePath conversion 2020-10-29 10:50:29 -04:00
Path fix prop_relPathDirToFileAbs_basics fail on windows 2021-01-18 13:26:10 -04:00
Process squash build warnings on windows 2020-11-23 14:00:17 -04:00
Scheduled
Tmp
Aeson.hs
Android.hs
Applicative.hs
Attoparsec.hs
AuthToken.hs
Base64.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
Batch.hs move TransferrerPool from assistant 2020-12-07 12:50:48 -04:00
Bloom.hs
CoProcess.hs Revert "async exception safety for coprocesses" 2020-07-06 15:11:28 -04:00
CopyFile.hs convert to withCreateProcess for async exception safety 2020-06-04 15:45:52 -04:00
Daemon.hs Fix build on Windows 2020-11-19 12:33:00 -04:00
Data.hs
DataUnits.hs
DBus.hs
DebugLocks.hs
Directory.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
DirWatcher.hs
DiskFree.hs
Dot.hs
DottedVersion.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
Env.hs
Exception.hs Revert "async exception safety for coprocesses" 2020-07-06 15:11:28 -04:00
FileMode.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
FileSize.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
FileSystemEncoding.hs squash remaining build warnings on windows 2020-11-24 12:35:09 -04:00
Format.hs export encode_c' 2020-12-09 15:28:45 -04:00
FreeDesktop.hs
GitLFS.hs Build with the git-lfs library when available 2020-06-22 11:21:25 -04:00
Glob.hs Windows: include= and exclude= containing '/' will also match filenames that are written using '\' 2020-12-15 12:39:34 -04:00
Gpg.hs squash build warnings on windows 2020-11-23 14:00:17 -04:00
Hash.hs
HtmlDetect.hs
HttpManagerRestricted.hs Build with the http-client-restricted library when available 2020-06-22 11:31:31 -04:00
HumanNumber.hs
HumanTime.hs avoid parseDuration succeeding on empty string 2020-12-08 12:51:56 -04:00
InodeCache.hs omit inode from ContentIdentifier for directory special remote 2021-01-19 13:15:07 -04:00
IPAddress.hs
libkqueue.c
libkqueue.h
LinuxMkLibs.hs more RawFilePath conversion 2020-10-29 10:50:29 -04:00
LockFile.hs
LockPool.hs
LogFile.hs
Lsof.hs convert to withCreateProcess for async exception safety 2020-06-04 12:44:09 -04:00
MagicWormhole.hs converted reads from stderr to use hGetLineUntilExitOrEOF 2020-11-19 16:21:17 -04:00
Matcher.hs import --no-content: Check annex.largefiles 2020-09-28 13:28:57 -04:00
MD5.hs
Metered.hs use TotalSize more extensively 2020-12-11 12:10:43 -04:00
Misc.hs
Monad.hs
Mounts.hs
MoveFile.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Network.hs
NotificationBroadcaster.hs
OptParse.hs
OSX.hs
PartialPrelude.hs
Path.hs rewrite prop_relPathDirToFileAbs_basics 2021-01-13 13:23:26 -04:00
Percentage.hs
PID.hs
Process.hs stall detection is working 2020-12-08 15:22:18 -04:00
QuickCheck.hs fix build warning 2021-01-13 14:48:41 -04:00
RawFilePath.hs squash build warnings on windows 2020-11-23 14:00:17 -04:00
ResourcePool.hs
Rsync.hs Parse youtube-dl progress output 2020-09-29 17:53:48 -04:00
SafeCommand.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
Scheduled.hs
Shell.hs
ShellEscape.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
SimpleProtocol.hs minor improvements 2020-12-09 15:28:11 -04:00
Split.hs
SshConfig.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
SshHost.hs
Su.hs
SystemDirectory.hs
Tense.hs
ThreadLock.hs
ThreadScheduler.hs
TimeStamp.hs
TList.hs further change to support dlist-1.0 2020-08-05 10:37:14 -04:00
Tmp.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Tor.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
Touch.hs fix build on windows 2020-11-16 09:31:45 -04:00
Tuple.hs
Url.hs preserve other headers when adding resume header 2020-11-19 14:45:22 -04:00
UserInfo.hs
Verifiable.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
WebApp.hs squash remaining build warnings on windows 2020-11-24 12:35:09 -04:00
Yesod.hs