In a number of scenarios (e.g. still seeing errors with parallel git-annex-add, parallel copy fails, git-annex-sync), git-annex operations may fail or hang due to transient conditions. It would help a lot if git-annex could be configured to fail timed-out operations, and to retry failed operations after a delay. This would especially help when using git-annex in a script or a higher-level tool. I've tried wrapping some retry logic around git-annex calls, but it seems git-annex itself is in the best position to do that sensibly (e.g. only retrying idempotent operations, or capping retries per remote). This would be a catch-all fix for unusual conditions that are hard to test for.

git-annex already has config options annex.retry and annex.retry-delay, but it seems that they don't cover all failure types.

Added annex.stalldetection, done --Joey