Goal for the rest of the month is to build automatic recovery git repository corruption. Spent today investigating how to do it and came up with a fairly detailed design. It will have two parts, first to handle repository problems that can be fixed by fetching objects from remotes, and secondly to recover from problems where data never got sent to a remote, and has been lost.
In either case, the assistant should be able to detect the problem and
automatically recover well enough to keep running. Since this also affects
non-git-annex repositories, it will also be available in a standalone
git-recover-repository
command.
This just came to mind when I thought about the second case. I noticed quite often that files were left in .git/annex/tmp (seen on OS X) and sometimes these are the only instances of files on this particular computer.
(It's on my todo list to file several bug reports about this and other issues on OS X...)