diff options
author | Joey Hess <joey@kitenet.net> | 2011-03-28 16:19:20 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-03-28 16:19:20 -0400 |
commit | 0956f0dd15f3114d7227787578499210f0c17db8 (patch) | |
tree | 6ba30e31f661a79e36ebabe6710ef5bccd120abb | |
parent | cf99575d74d2a68004efa152ea9e7ac1c2866935 (diff) |
fsck: Ensure that files and directories in .git/annex/objects have proper permissions.
-rw-r--r-- | Command/Fsck.hs | 11 | ||||
-rw-r--r-- | debian/changelog | 7 | ||||
-rw-r--r-- | doc/bugs/fsck__47__fix_should_check__47__fix_the_permissions_of_.git__47__annex.mdwn | 2 |
3 files changed, 19 insertions, 1 deletions
diff --git a/Command/Fsck.hs b/Command/Fsck.hs index 216c87493..bedb9fb99 100644 --- a/Command/Fsck.hs +++ b/Command/Fsck.hs @@ -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 diff --git a/debian/changelog b/debian/changelog index 7251ab665..1b0916553 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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") diff --git a/doc/bugs/fsck__47__fix_should_check__47__fix_the_permissions_of_.git__47__annex.mdwn b/doc/bugs/fsck__47__fix_should_check__47__fix_the_permissions_of_.git__47__annex.mdwn index ec8b6d233..c649ff9f7 100644 --- a/doc/bugs/fsck__47__fix_should_check__47__fix_the_permissions_of_.git__47__annex.mdwn +++ b/doc/bugs/fsck__47__fix_should_check__47__fix_the_permissions_of_.git__47__annex.mdwn @@ -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]] |