disable journalIgnorable in enableInteractiveBranchAccess
Fix a reversion that prevented --batch commands (and the assistant)
from noticing data written to the journal by other commands.
I have not identified which commit broke this for sure,
but probably it was aeca7c2207
--batch commands that wrote to the journal avoided the problem since
journalIgnorable sets unset on write. It's a little bit surprising that
nobody noticed that query --batch commands did not see data written by
other commands.
Sponsored-by: Dartmouth College's DANDI project
This commit is contained in:
parent
91abd872d3
commit
a2b1f369d1
3 changed files with 21 additions and 5 deletions
|
@ -2,7 +2,7 @@
|
||||||
-
|
-
|
||||||
- Runtime state about the git-annex branch, and a small cache.
|
- Runtime state about the git-annex branch, and a small cache.
|
||||||
-
|
-
|
||||||
- Copyright 2011-2021 Joey Hess <id@joeyh.name>
|
- Copyright 2011-2022 Joey Hess <id@joeyh.name>
|
||||||
-
|
-
|
||||||
- Licensed under the GNU AGPL version 3 or higher.
|
- 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
|
-- so avoid an unnecessary write to the MVar that changeState
|
||||||
-- would do.
|
-- 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
|
-- 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.
|
-- should not happen.
|
||||||
st <- getState
|
st <- getState
|
||||||
when (journalIgnorable st) $
|
when (journalIgnorable st) $
|
||||||
|
@ -109,8 +109,10 @@ journalChanged = do
|
||||||
- will be seen.
|
- will be seen.
|
||||||
-}
|
-}
|
||||||
enableInteractiveBranchAccess :: Annex ()
|
enableInteractiveBranchAccess :: Annex ()
|
||||||
enableInteractiveBranchAccess = changeState $
|
enableInteractiveBranchAccess = changeState $ \s -> s
|
||||||
\s -> s { needInteractiveAccess = True }
|
{ needInteractiveAccess = True
|
||||||
|
, journalIgnorable = False
|
||||||
|
}
|
||||||
|
|
||||||
setCache :: RawFilePath -> L.ByteString -> Annex ()
|
setCache :: RawFilePath -> L.ByteString -> Annex ()
|
||||||
setCache file content = changeState $ \s -> s
|
setCache file content = changeState $ \s -> s
|
||||||
|
|
|
@ -17,6 +17,8 @@ git-annex (10.20220625) UNRELEASED; urgency=medium
|
||||||
find -printf.
|
find -printf.
|
||||||
* S3: Avoid writing or checking the uuid file in the S3 bucket when
|
* S3: Avoid writing or checking the uuid file in the S3 bucket when
|
||||||
importtree=yes or exporttree=yes.
|
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 <id@joeyh.name> Tue, 28 Jun 2022 14:49:17 -0400
|
-- Joey Hess <id@joeyh.name> Tue, 28 Jun 2022 14:49:17 -0400
|
||||||
|
|
||||||
|
|
|
@ -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]]
|
Loading…
Reference in a new issue