diff options
author | Joey Hess <joey@kitenet.net> | 2011-03-23 17:57:10 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-03-23 17:57:10 -0400 |
commit | 6246b807f7df32877a87d906cfbe1ae26c51dd8e (patch) | |
tree | 00c38d74c2b4591ab0a68a807bb70c6044cde3f4 /Backend | |
parent | ad08273ac5118f1faac539b53f1fa63908dc5656 (diff) |
migrate: Support migrating v1 SHA keys to v2 SHA keys with size information that can be used for free space checking.
Diffstat (limited to 'Backend')
-rw-r--r-- | Backend/File.hs | 10 | ||||
-rw-r--r-- | Backend/URL.hs | 4 |
2 files changed, 12 insertions, 2 deletions
diff --git a/Backend/File.hs b/Backend/File.hs index a6d42eabd..fb8a05255 100644 --- a/Backend/File.hs +++ b/Backend/File.hs @@ -29,6 +29,7 @@ import Types import UUID import Messages import Trust +import Key backend :: Backend Annex backend = Backend { @@ -38,7 +39,8 @@ backend = Backend { retrieveKeyFile = copyKeyFile, removeKey = checkRemoveKey, hasKey = inAnnex, - fsckKey = checkKeyOnly + fsckKey = checkKeyOnly, + upgradableKey = checkUpgradableKey } mustProvide :: a @@ -159,6 +161,12 @@ getNumCopies Nothing = do where config = "annex.numcopies" +{- Ideally, all keys have file size metadata. Old keys may not. -} +checkUpgradableKey :: Key -> Annex Bool +checkUpgradableKey key + | keySize key == Nothing = return True + | otherwise = return False + {- This is used to check that numcopies is satisfied for the key on fsck. - This trusts data in the the location log, and so can check all keys, even - those with data not present in the current annex. diff --git a/Backend/URL.hs b/Backend/URL.hs index 210c7c5b4..3068c3027 100644 --- a/Backend/URL.hs +++ b/Backend/URL.hs @@ -30,7 +30,9 @@ backend = Backend { -- similarly, keys are always assumed to be out there on the web hasKey = dummyOk, -- and nothing needed to fsck - fsckKey = dummyFsck + fsckKey = dummyFsck, + -- and key upgrade not needed + upgradableKey = \_ -> return False } -- cannot generate url from filename |