diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-01-27 17:38:06 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-01-27 17:38:06 -0400 |
commit | df81023501e2b0d930ec90cc6f5a6c6735f84818 (patch) | |
tree | 5bd3b9d8f91464bd27c9d86f700b975a76067147 /Logs | |
parent | 1e07d61b9669f85a02551d7858177bd33ffaea6f (diff) |
Repository tuning parameters can now be passed when initializing a repository for the first time.
* init: Repository tuning parameters can now be passed when initializing a
repository for the first time. For details, see
http://git-annex.branchable.com/tuning/
* merge: Refuse to merge changes from a git-annex branch of a repo
that has been tuned in incompatable ways.
Diffstat (limited to 'Logs')
-rw-r--r-- | Logs/Difference.hs | 40 | ||||
-rw-r--r-- | Logs/Difference/Pure.hs | 26 |
2 files changed, 66 insertions, 0 deletions
diff --git a/Logs/Difference.hs b/Logs/Difference.hs new file mode 100644 index 000000000..68d624f99 --- /dev/null +++ b/Logs/Difference.hs @@ -0,0 +1,40 @@ +{- git-annex difference log + - + - Copyright 2015 Joey Hess <id@joeyh.name> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Logs.Difference ( + recordDifferences, + recordedDifferences, + recordedDifferencesFor, + module Logs.Difference.Pure +) where + +import Data.Monoid +import Data.Time.Clock.POSIX +import qualified Data.Map as M + +import Common.Annex +import Types.Difference +import qualified Annex.Branch +import Logs +import Logs.UUIDBased +import Logs.Difference.Pure + +recordDifferences :: Differences -> UUID -> Annex () +recordDifferences differences uuid = do + ts <- liftIO getPOSIXTime + Annex.Branch.change differenceLog $ + showLog id . changeLog ts uuid (show differences) . parseLog Just + +-- Map of UUIDs that have Differences recorded. +-- If a new version of git-annex has added a Difference this version +-- doesn't know about, it will contain UnknownDifferences. +recordedDifferences :: Annex (M.Map UUID Differences) +recordedDifferences = parseDifferencesLog <$> Annex.Branch.get differenceLog + +recordedDifferencesFor :: UUID -> Annex Differences +recordedDifferencesFor u = fromMaybe mempty . M.lookup u + <$> recordedDifferences diff --git a/Logs/Difference/Pure.hs b/Logs/Difference/Pure.hs new file mode 100644 index 000000000..76d995a01 --- /dev/null +++ b/Logs/Difference/Pure.hs @@ -0,0 +1,26 @@ +{- git-annex difference log, pure functions + - + - Copyright 2015 Joey Hess <id@joeyh.name> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Logs.Difference.Pure ( + allDifferences, + parseDifferencesLog, +) where + +import Data.Monoid +import qualified Data.Map as M + +import Common.Annex +import Types.Difference +import Logs.UUIDBased + +parseDifferencesLog :: String -> (M.Map UUID Differences) +parseDifferencesLog = simpleMap + . parseLog (Just . fromMaybe UnknownDifferences . readish) + +-- The sum of all recorded differences, across all UUIDs. +allDifferences :: M.Map UUID Differences -> Differences +allDifferences = mconcat . M.elems |