Please describe the problem.

Sometimes I end up having files whose contents do exist in this repo, but the location log says otherwise.

For indirect repos, I can just run annex fsck on the directory, it says "(fixing location log)", and everything is fine.

But when I try to do the same in a direct repo, it refuses to admit that it just found a copy:

┌ frost ~/Attic/Anime (annex)
┘ annex fsck Foo/
fsck Foo/[HorribleSubs] Foobar - 01 [720p].mkv (checksum...) 
  ** No known copies exist of Foo/[HorribleSubs] Foobar - 01 [720p].mkv
failed
fsck Foo/[HorribleSubs] Foobar - 02 [720p].mkv (checksum...) 
  ** No known copies exist of Foo/[HorribleSubs] Foobar - 02 [720p].mkv
failed
...and so on.

(A copy does exist; after all, annex just spent 30 seconds checksumming it.)

I work around this bug by switching to indirect mode temporarily, which allows fsck to fix the log.

What steps will reproduce the problem?

For the fsck bug, I think you just need a file that physically exists in the repo, but not marked as such in the location log.

As for how such files happen in the first place, I've no idea myself. (For what it's worth, the log seems fine.)

What version of git-annex are you using? On what operating system?

Arch's community/git-annex 6.20160511

fixed --Joey