summaryrefslogtreecommitdiff
path: root/Logs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-09-05 13:44:09 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-09-05 13:44:09 -0400
commit6cade5c9d59566314fe63d30f648dde1abe33a32 (patch)
tree17e5a54a64dad37d128873b4748b35474b2a46b0 /Logs
parent95c95a78f1d9cf00b7d706691cbee40ba4f21cf8 (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.hs16
-rw-r--r--Logs/Trust/Basic.hs32
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"