07580dc3df
The root of the problem is that toInodeCache sees a non-symlink, and so goes on and generates a new inode cache for the dummy symlink. Any place that toInodeCache, or sameFileStatus, or genInodeCache are called may need to deal with this case. Although many of them are ok. For example, prepSendAnnex calls sameInodeCache, which calls genInodeCache.. but if the file content is not present, the InodeCache generated for its standin file is appropriately not the same, and so it returns Nothing. I've audited some, but have to say I'm not happy with this; it should be handled at the type level somehow, or a toInodeCache wrapper be used that is aware of dummy symlinks. (The Watcher already dealt with it, via the guardSymlinkStandin function.) |
||
---|---|---|
.. | ||
Content | ||
Branch.hs | ||
BranchState.hs | ||
CatFile.hs | ||
CheckAttr.hs | ||
Content.hs | ||
Direct.hs | ||
Environment.hs | ||
Exception.hs | ||
FileMatcher.hs | ||
Journal.hs | ||
Link.hs | ||
LockPool.hs | ||
Perms.hs | ||
Queue.hs | ||
Ssh.hs | ||
TaggedPush.hs | ||
UUID.hs | ||
Version.hs | ||
Wanted.hs |