fsck: Ensure that files and directories in .git/annex/objects have proper permissions.

This commit is contained in:
Joey Hess 2011-03-28 16:19:20 -04:00
parent cf99575d74
commit 0956f0dd15
3 changed files with 19 additions and 1 deletions

View file

@ -7,6 +7,7 @@
module Command.Fsck where
import Control.Monad (when)
import Control.Monad.State (liftIO)
import Command
@ -18,6 +19,7 @@ import Messages
import Utility
import Content
import LocationLog
import Locations
command :: [Command]
command = [repoCommand "fsck" (paramOptional $ paramRepeating paramPath) seek
@ -47,9 +49,16 @@ perform key file backend numcopies = do
in this repository only. -}
verifyLocationLog :: Key -> FilePath -> Annex Bool
verifyLocationLog key file = do
g <- Annex.gitRepo
present <- inAnnex key
g <- Annex.gitRepo
-- Since we're checking that a key's file is present, throw
-- in a permission fixup here too.
when present $ liftIO $ do
let f = gitAnnexLocation g key
preventWrite f
preventWrite (parentDir f)
u <- getUUID g
uuids <- liftIO $ keyLocations g key

7
debian/changelog vendored
View file

@ -1,3 +1,10 @@
git-annex (0.20110329) UNRELEASED; urgency=low
* fsck: Ensure that files and directories in .git/annex/objects
have proper permissions.
-- Joey Hess <joeyh@debian.org> Mon, 28 Mar 2011 16:17:59 -0400
git-annex (0.20110328) experimental; urgency=low
* annex.diskreserve can be given in arbitrary units (ie "0.5 gigabytes")

View file

@ -4,3 +4,5 @@ The fsck command should check that they are still correct.
The fix command should fix them.
PS: Thanks for this nice tool!
> Good idea, [[done]] (actually, fsck just fixes them too)! --[[Joey]]