aboutsummaryrefslogtreecommitdiff
path: root/Logs/Difference.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-01-27 17:38:06 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-01-27 17:38:06 -0400
commitdf81023501e2b0d930ec90cc6f5a6c6735f84818 (patch)
tree5bd3b9d8f91464bd27c9d86f700b975a76067147 /Logs/Difference.hs
parent1e07d61b9669f85a02551d7858177bd33ffaea6f (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/Difference.hs')
-rw-r--r--Logs/Difference.hs40
1 files changed, 40 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