readFileStrict to avoid laziness bug
Fix laziness bug introduced in last release that breaks use of --unlock-present and --hide-missing adjusted branches. Since there is a writeFile of the same file immediately after readFile, it may still have the file open for read (or may have happened to read it already and closed it). I was not able to reproduce the problem in brief testing, but this seems obvious. Sponsored-by: Luke Shumaker on Patreona
This commit is contained in:
parent
e37b968383
commit
3eb51ee929
2 changed files with 5 additions and 3 deletions
|
@ -253,8 +253,8 @@ updateAdjustedBranch adj (AdjBranch currbranch) origbranch
|
||||||
-- has that have not yet been propigated back to the
|
-- has that have not yet been propigated back to the
|
||||||
-- origbranch.
|
-- origbranch.
|
||||||
_ <- propigateAdjustedCommits' origbranch adj commitlck
|
_ <- propigateAdjustedCommits' origbranch adj commitlck
|
||||||
|
|
||||||
origheadfile <- inRepo $ readFile . Git.Ref.headFile
|
origheadfile <- inRepo $ readFileStrict . Git.Ref.headFile
|
||||||
|
|
||||||
-- Git normally won't do anything when asked to check
|
-- Git normally won't do anything when asked to check
|
||||||
-- out the currently checked out branch, even when its
|
-- out the currently checked out branch, even when its
|
||||||
|
@ -279,7 +279,7 @@ updateAdjustedBranch adj (AdjBranch currbranch) origbranch
|
||||||
unless ok $ case newheadfile of
|
unless ok $ case newheadfile of
|
||||||
Nothing -> noop
|
Nothing -> noop
|
||||||
Just v -> preventCommits $ \_commitlck -> inRepo $ \r -> do
|
Just v -> preventCommits $ \_commitlck -> inRepo $ \r -> do
|
||||||
v' <- readFile (Git.Ref.headFile r)
|
v' <- readFileStrict (Git.Ref.headFile r)
|
||||||
when (v == v') $
|
when (v == v') $
|
||||||
writeFile (Git.Ref.headFile r) origheadfile
|
writeFile (Git.Ref.headFile r) origheadfile
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ git-annex (10.20230330) UNRELEASED; urgency=medium
|
||||||
* git-annex.cabal: Prevent building with unix-compat 0.7 which
|
* git-annex.cabal: Prevent building with unix-compat 0.7 which
|
||||||
removed System.PosixCompat.User.
|
removed System.PosixCompat.User.
|
||||||
* Sped up sqlite inserts 2x when built with persistent 2.14.5.0
|
* Sped up sqlite inserts 2x when built with persistent 2.14.5.0
|
||||||
|
* Fix laziness bug introduced in last release that breaks use
|
||||||
|
of --unlock-present and --hide-missing adjusted branches.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Fri, 31 Mar 2023 12:48:54 -0400
|
-- Joey Hess <id@joeyh.name> Fri, 31 Mar 2023 12:48:54 -0400
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue