diff options
author | Joey Hess <joey@kitenet.net> | 2014-09-05 13:44:09 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-09-05 13:44:09 -0400 |
commit | 6cade5c9d59566314fe63d30f648dde1abe33a32 (patch) | |
tree | 17e5a54a64dad37d128873b4748b35474b2a46b0 /Logs | |
parent | 95c95a78f1d9cf00b7d706691cbee40ba4f21cf8 (diff) |
New annex.hardlink setting. Closes: #758593
* New annex.hardlink setting. Closes: #758593
* init: Automatically detect when a repository was cloned with --shared,
and set annex.hardlink=true, as well as marking the repository as
untrusted.
Had to reorganize Logs.Trust a bit to avoid a cycle between it and
Annex.Init.
Diffstat (limited to 'Logs')
-rw-r--r-- | Logs/Trust.hs | 16 | ||||
-rw-r--r-- | Logs/Trust/Basic.hs | 32 |
2 files changed, 33 insertions, 15 deletions
diff --git a/Logs/Trust.hs b/Logs/Trust.hs index c6f0ad3ab..047a728f4 100644 --- a/Logs/Trust.hs +++ b/Logs/Trust.hs @@ -11,7 +11,6 @@ module Logs.Trust ( TrustLevel(..), trustGet, trustMap, - trustSet, trustPartition, trustExclude, lookupTrust, @@ -20,17 +19,15 @@ module Logs.Trust ( ) where import qualified Data.Map as M -import Data.Time.Clock.POSIX import Common.Annex import Types.TrustLevel import qualified Annex.Branch import qualified Annex import Logs -import Logs.UUIDBased import Remote.List import qualified Types.Remote -import Logs.Trust.Pure as X +import Logs.Trust.Basic as X {- Returns a list of UUIDs that the trustLog indicates have the - specified trust level. @@ -39,17 +36,6 @@ import Logs.Trust.Pure as X trustGet :: TrustLevel -> Annex [UUID] trustGet level = M.keys . M.filter (== level) <$> trustMap -{- Changes the trust level for a uuid in the trustLog. -} -trustSet :: UUID -> TrustLevel -> Annex () -trustSet uuid@(UUID _) level = do - ts <- liftIO getPOSIXTime - Annex.Branch.change trustLog $ - showLog showTrustLog . - changeLog ts uuid level . - parseLog (Just . parseTrustLog) - Annex.changeState $ \s -> s { Annex.trustmap = Nothing } -trustSet NoUUID _ = error "unknown UUID; cannot modify" - {- Returns the TrustLevel of a given repo UUID. -} lookupTrust :: UUID -> Annex TrustLevel lookupTrust u = (fromMaybe SemiTrusted . M.lookup u) <$> trustMap diff --git a/Logs/Trust/Basic.hs b/Logs/Trust/Basic.hs new file mode 100644 index 000000000..646e2e037 --- /dev/null +++ b/Logs/Trust/Basic.hs @@ -0,0 +1,32 @@ +{- git-annex trust log, basics + - + - Copyright 2010-2012 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Logs.Trust.Basic ( + module X, + trustSet, +) where + +import Data.Time.Clock.POSIX + +import Common.Annex +import Types.TrustLevel +import qualified Annex.Branch +import qualified Annex +import Logs +import Logs.UUIDBased +import Logs.Trust.Pure as X + +{- Changes the trust level for a uuid in the trustLog. -} +trustSet :: UUID -> TrustLevel -> Annex () +trustSet uuid@(UUID _) level = do + ts <- liftIO getPOSIXTime + Annex.Branch.change trustLog $ + showLog showTrustLog . + changeLog ts uuid level . + parseLog (Just . parseTrustLog) + Annex.changeState $ \s -> s { Annex.trustmap = Nothing } +trustSet NoUUID _ = error "unknown UUID; cannot modify" |