optimise for case where there are no required contents

Avoid reading location log in this case.
This commit is contained in:
Joey Hess 2018-02-08 14:16:00 -04:00
parent 74c1a5c24b
commit 42ba888875
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -295,21 +295,24 @@ verifyLocationLog' key ai present u updatestatus = do
- checking against the location log. -}
verifyRequiredContent :: Key -> ActionItem -> Annex Bool
verifyRequiredContent key ai@(ActionItemAssociatedFile afile) = do
presentlocs <- S.fromList <$> loggedLocations key
requiredlocs <- S.fromList . M.keys <$> requiredContentMap
missinglocs <- filterM
(\u -> isRequiredContent (Just u) S.empty (Just key) afile False)
(S.toList $ S.difference requiredlocs presentlocs)
if null missinglocs
if S.null requiredlocs
then return True
else do
missingrequired <- Remote.prettyPrintUUIDs "missingrequired" missinglocs
warning $
"** Required content " ++
actionItemDesc ai key ++
" is missing from these repositories:\n" ++
missingrequired
return False
presentlocs <- S.fromList <$> loggedLocations key
missinglocs <- filterM
(\u -> isRequiredContent (Just u) S.empty (Just key) afile False)
(S.toList $ S.difference requiredlocs presentlocs)
if null missinglocs
then return True
else do
missingrequired <- Remote.prettyPrintUUIDs "missingrequired" missinglocs
warning $
"** Required content " ++
actionItemDesc ai key ++
" is missing from these repositories:\n" ++
missingrequired
return False
verifyRequiredContent _ _ = return True
{- Verifies the associated file records. -}