handle transitions with read-only unmerged git-annex branches

Capstone to this feature. Any transitions that have been performed on an
unmerged remote ref but not on the local git-annex branch, or vice-versa
have to be applied on the fly when reading files.

Sponsored-by: Dartmouth College's Datalad project
This commit is contained in:
Joey Hess 2021-12-28 13:23:32 -04:00
parent 1291a7d86c
commit b1d719f9d2
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
9 changed files with 95 additions and 28 deletions

View file

@ -11,6 +11,7 @@ module Annex.BranchState where
import Annex.Common
import Types.BranchState
import Types.Transitions
import qualified Annex
import Logs
import qualified Git
@ -38,6 +39,7 @@ data UpdateMade
}
| UpdateFailedPermissions
{ refsUnmerged :: [Git.Sha]
, newTransitions :: [TransitionCalculator]
}
{- Runs an action to update the branch, if it's not been updated before
@ -70,6 +72,7 @@ runUpdateOnce update = do
{ branchUpdated = True
, journalIgnorable = False
, unmergedRefs = refsUnmerged um
, unhandledTransitions = newTransitions um
, cachedFileContents = []
}
changeState stf