summaryrefslogtreecommitdiff
path: root/Assistant
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-12-10 15:40:01 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-12-10 15:40:01 -0400
commit6248ad7b2a55d63114851e74279190f424f042ba (patch)
tree68de8099f9f9f8db82eb11243e8baf90b42b7495 /Assistant
parent3890862075dee3e31338fdc85ab6a43324793c97 (diff)
Improve repair of git-annex index file.
Fixes a test case I received where a corrupted repo was repaired, but the git-annex branch was not. The root of the problem was that the MissingObject returned by the repair code was not necessarily a complete set of all objects that might have been deleted during the repair. So, stop trying to return that at all, and instead make the index file checking code explicitly verify that each object the index uses is present.
Diffstat (limited to 'Assistant')
-rw-r--r--Assistant/Threads/SanityChecker.hs3
1 files changed, 1 insertions, 2 deletions
diff --git a/Assistant/Threads/SanityChecker.hs b/Assistant/Threads/SanityChecker.hs
index f417606b5..2e6a28759 100644
--- a/Assistant/Threads/SanityChecker.hs
+++ b/Assistant/Threads/SanityChecker.hs
@@ -29,7 +29,6 @@ import Git.Repair
import Git.Index
import Data.Time.Clock.POSIX
-import qualified Data.Set as S
{- This thread runs once at startup, and most other threads wait for it
- to finish. (However, the webapp thread does not, to prevent the UI
@@ -41,7 +40,7 @@ sanityCheckerStartupThread startupdelay = namedThreadUnchecked "SanityCheckerSta
{- A corrupt index file can prevent the assistant from working at
- all, so detect and repair. -}
- ifM (not <$> liftAnnex (inRepo (checkIndex S.empty)))
+ ifM (not <$> liftAnnex (inRepo checkIndexFast))
( do
notice ["corrupt index file found at startup; removing and restaging"]
liftAnnex $ inRepo $ nukeFile . indexFile