migrate: Support migrating v1 SHA keys to v2 SHA keys with size information that can be used for free space checking.
This commit is contained in:
parent
ad08273ac5
commit
6246b807f7
9 changed files with 54 additions and 10 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue