diff options
Diffstat (limited to 'Logs')
-rw-r--r-- | Logs/Location.hs | 10 | ||||
-rw-r--r-- | Logs/Trust.hs | 6 |
2 files changed, 12 insertions, 4 deletions
diff --git a/Logs/Location.hs b/Logs/Location.hs index cb21a2d1c..27b4d709e 100644 --- a/Logs/Location.hs +++ b/Logs/Location.hs @@ -27,6 +27,7 @@ module Logs.Location ( import Common.Annex import qualified Annex.Branch import Logs.Presence +import Logs.Trust {- Log a change in the presence of a key's value in a repository. -} logChange :: Key -> UUID -> LogStatus -> Annex () @@ -34,9 +35,14 @@ logChange key (UUID u) s = addLog (logFile key) =<< logNow s u logChange _ NoUUID _ = return () {- Returns a list of repository UUIDs that, according to the log, have - - the value of a key. -} + - the value of a key. + - + - Dead repositories are skipped. + -} keyLocations :: Key -> Annex [UUID] -keyLocations key = map toUUID <$> (currentLog . logFile) key +keyLocations key = do + l <- map toUUID <$> (currentLog . logFile) key + snd <$> trustPartition DeadTrusted l {- Finds all keys that have location log information. - (There may be duplicate keys in the list.) -} diff --git a/Logs/Trust.hs b/Logs/Trust.hs index e447fbebc..f18f42511 100644 --- a/Logs/Trust.hs +++ b/Logs/Trust.hs @@ -67,12 +67,14 @@ parseTrust s w = words s parse "1" = Trusted parse "0" = UnTrusted + parse "X" = DeadTrusted parse _ = SemiTrusted showTrust :: TrustLevel -> String -showTrust SemiTrusted = "?" -showTrust UnTrusted = "0" showTrust Trusted = "1" +showTrust UnTrusted = "0" +showTrust DeadTrusted = "X" +showTrust SemiTrusted = "?" {- Changes the trust level for a uuid in the trustLog. -} trustSet :: UUID -> TrustLevel -> Annex () |