From 6cade5c9d59566314fe63d30f648dde1abe33a32 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 5 Sep 2014 13:44:09 -0400 Subject: 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. --- Logs/Trust/Basic.hs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Logs/Trust/Basic.hs (limited to 'Logs/Trust/Basic.hs') 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 + - + - 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" -- cgit v1.2.3