aboutsummaryrefslogtreecommitdiff
path: root/Logs/Difference.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-01-28 13:47:41 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-01-28 13:50:02 -0400
commitf351b887265f0abce8d52ffcb7b9b2ee7bd8bc81 (patch)
treec7cb719e91b82bee7f4ea8e74732dd3f3d4dc103 /Logs/Difference.hs
parent6a8efb186432cd9b8fa7a61f8129303f5bcc9e1f (diff)
rework Differences data type
Eliminated complexity and future proofed. The most important change is that all functions over Difference are now total; any Difference that can be expressed should be handled. Avoids needs for sanity checking of inputs, and version skew with the future. Also, the difference.log now serializes a [Difference], not a Differences. This saves space and keeps it simpler. Note that [Difference] might contain conflicting differences (eg, [Version5, Version6]. In this case, one of them needs to consistently win over the others, probably based on Ord.
Diffstat (limited to 'Logs/Difference.hs')
-rw-r--r--Logs/Difference.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/Logs/Difference.hs b/Logs/Difference.hs
index 68d624f99..fcebffee9 100644
--- a/Logs/Difference.hs
+++ b/Logs/Difference.hs
@@ -24,10 +24,11 @@ import Logs.UUIDBased
import Logs.Difference.Pure
recordDifferences :: Differences -> UUID -> Annex ()
-recordDifferences differences uuid = do
+recordDifferences (Differences differences) uuid = do
ts <- liftIO getPOSIXTime
Annex.Branch.change differenceLog $
showLog id . changeLog ts uuid (show differences) . parseLog Just
+recordDifferences UnknownDifferences _ = return ()
-- Map of UUIDs that have Differences recorded.
-- If a new version of git-annex has added a Difference this version