diff --git a/Annex/BranchState.hs b/Annex/BranchState.hs index c443409773..95d860e467 100644 --- a/Annex/BranchState.hs +++ b/Annex/BranchState.hs @@ -2,7 +2,7 @@ - - Runtime state about the git-annex branch, and a small cache. - - - Copyright 2011-2021 Joey Hess + - Copyright 2011-2022 Joey Hess - - Licensed under the GNU AGPL version 3 or higher. -} @@ -92,9 +92,9 @@ journalChanged = do -- so avoid an unnecessary write to the MVar that changeState -- would do. -- - -- This assumes that another thread is not changing journalIgnorable + -- This assumes that another thread is not setting journalIgnorable -- at the same time, but since runUpdateOnce is the only - -- thing that changes it, and it only runs once, that + -- thing that sets it, and it only runs once, that -- should not happen. st <- getState when (journalIgnorable st) $ @@ -109,8 +109,10 @@ journalChanged = do - will be seen. -} enableInteractiveBranchAccess :: Annex () -enableInteractiveBranchAccess = changeState $ - \s -> s { needInteractiveAccess = True } +enableInteractiveBranchAccess = changeState $ \s -> s + { needInteractiveAccess = True + , journalIgnorable = False + } setCache :: RawFilePath -> L.ByteString -> Annex () setCache file content = changeState $ \s -> s diff --git a/CHANGELOG b/CHANGELOG index 00af5c368d..1c2c561f33 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -17,6 +17,8 @@ git-annex (10.20220625) UNRELEASED; urgency=medium find -printf. * S3: Avoid writing or checking the uuid file in the S3 bucket when importtree=yes or exporttree=yes. + * Fix a reversion that prevented --batch commands (and the assistant) + from noticing data written to the journal by other commands. -- Joey Hess Tue, 28 Jun 2022 14:49:17 -0400 diff --git a/doc/bugs/batch_commands_miss_journalled_changes_made_while_running.mdwn b/doc/bugs/batch_commands_miss_journalled_changes_made_while_running.mdwn new file mode 100644 index 0000000000..09fc596841 --- /dev/null +++ b/doc/bugs/batch_commands_miss_journalled_changes_made_while_running.mdwn @@ -0,0 +1,12 @@ +--batch commands are supposed to notice changes that get made to the +journal while they are running. This way, if two batch commands are run, +one making changes and the other reading the values, the reader notices the +changes. + +That does not currently happen. Looks like runUpdateOnce runs before +enableInteractiveBranchAccess, and so sets journalIgnorable. Only if the +batch command writes to the journal does journalIgnorable get unset, and +then the command will notice journalled changes by itself or others. +But query commands + +> [[fixed|done]] --[[Joey]]