From ae19ad0fa117437ec7341af0ce51555dcc749eb0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 17 Sep 2024 11:37:25 -0400 Subject: [PATCH] sim: fix changing settings bug --- Annex/Sim.hs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Annex/Sim.hs b/Annex/Sim.hs index f184376074..943f4781c2 100644 --- a/Annex/Sim.hs +++ b/Annex/Sim.hs @@ -920,22 +920,22 @@ updateSimRepoState newst sr = do , removeDiff = const . flip groupChange (const mempty) } updateField oldst newst simWanted $ DiffUpdate - { replaceDiff = const . preferredContentSet + { replaceDiff = replaceNew preferredContentSet , addDiff = preferredContentSet , removeDiff = const . flip preferredContentSet mempty } updateField oldst newst simRequired $ DiffUpdate - { replaceDiff = const . requiredContentSet + { replaceDiff = replaceNew requiredContentSet , addDiff = requiredContentSet , removeDiff = const . flip requiredContentSet mempty } updateField oldst newst simGroupWanted $ DiffUpdate - { replaceDiff = const . groupPreferredContentSet + { replaceDiff = replaceNew groupPreferredContentSet , addDiff = groupPreferredContentSet , removeDiff = const . flip groupPreferredContentSet mempty } updateField oldst newst simMaxSize $ DiffUpdate - { replaceDiff = const . recordMaxSize + { replaceDiff = replaceNew recordMaxSize , addDiff = recordMaxSize , removeDiff = const . flip recordMaxSize (MaxSize 0) } @@ -953,7 +953,7 @@ updateSimRepoState newst sr = do (getSimLocations' ls) } updateField oldst newst simFiles $ DiffUpdate - { replaceDiff = const . stageannexedfile + { replaceDiff = replaceNew stageannexedfile , addDiff = stageannexedfile , removeDiff = const . unstageannexedfile } @@ -987,6 +987,9 @@ data DiffUpdate a b m = DiffUpdate , removeDiff :: a -> b -> m () } +replaceNew :: (a -> b -> m ()) -> a -> b -> b -> m () +replaceNew f a new _old = f a new + updateMap :: (Monad m, Ord a, Eq b) => M.Map a b