summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-11-13 15:40:12 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-11-13 15:40:12 -0400
commitdd573e70105706bd1a769f74af9c3006dab903d0 (patch)
treea7593b70c7aedb7ddea3b2165fe95aecee50d923
parentabebbcfd544953f3a2c9dab042368069fd2d916a (diff)
fsck bugfixes
-rw-r--r--Backend/WORM.hs2
-rw-r--r--Core.hs6
2 files changed, 5 insertions, 3 deletions
diff --git a/Backend/WORM.hs b/Backend/WORM.hs
index e53ec6de7..374989996 100644
--- a/Backend/WORM.hs
+++ b/Backend/WORM.hs
@@ -47,7 +47,7 @@ keyValue file = do
{- Extracts the file size from a key. -}
keySize :: Key -> FileOffset
-keySize key = read $ section !! 2
+keySize key = read $ section !! 1
where
section = split ":" (keyName key)
diff --git a/Core.hs b/Core.hs
index 789b369cc..2a81678aa 100644
--- a/Core.hs
+++ b/Core.hs
@@ -207,9 +207,11 @@ fromAnnex key dest = do
moveBad :: Key -> Annex FilePath
moveBad key = do
g <- Annex.gitRepo
- let src = parentDir $ annexLocation g key
+ let src = annexLocation g key
let dest = annexBadLocation g
- liftIO $ renameDirectory src dest
+ liftIO $ createDirectoryIfMissing True dest
+ liftIO $ renameFile src (dest ++ takeFileName src)
+ liftIO $ removeDirectory (parentDir src)
return dest
{- List of keys whose content exists in .git/annex/objects/ -}