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.
This commit is contained in:
parent
354de19cbe
commit
ba3825441c
8 changed files with 42 additions and 90 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue