From 42ba888875505ac714e14fbddb36f52dbe89c8ba Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 8 Feb 2018 14:16:00 -0400 Subject: optimise for case where there are no required contents Avoid reading location log in this case. --- Command/Fsck.hs | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'Command') diff --git a/Command/Fsck.hs b/Command/Fsck.hs index 8ca5b1fd03..a536361a82 100644 --- a/Command/Fsck.hs +++ b/Command/Fsck.hs @@ -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. -} -- cgit v1.2.3