refactoring

This commit is contained in:
Joey Hess 2021-12-28 12:15:51 -04:00
parent 058193adc6
commit 720baf820e
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 17 additions and 9 deletions

View file

@ -230,8 +230,7 @@ updateTo' pairs = do
else return $ "merging " ++ else return $ "merging " ++
unwords (map Git.Ref.describe branches) ++ unwords (map Git.Ref.describe branches) ++
" into " ++ fromRef name " into " ++ fromRef name
localtransitions <- parseTransitionsStrictly "local" localtransitions <- getLocalTransitions
<$> getLocal transitionsLog
unless (null tomerge) $ do unless (null tomerge) $ do
showSideAction merge_desc showSideAction merge_desc
mapM_ checkBranchDifferences refs mapM_ checkBranchDifferences refs
@ -634,6 +633,11 @@ stageJournal jl commitindex = withIndex $ withOtherTmp $ \tmpdir -> do
removeWhenExistsWith (R.removeLink) (toRawFilePath jlogf) removeWhenExistsWith (R.removeLink) (toRawFilePath jlogf)
openjlog tmpdir = liftIO $ openTmpFileIn tmpdir "jlog" openjlog tmpdir = liftIO $ openTmpFileIn tmpdir "jlog"
getLocalTransitions :: Annex Transitions
getLocalTransitions =
parseTransitionsStrictly "local"
<$> getLocal transitionsLog
{- This is run after the refs have been merged into the index, {- This is run after the refs have been merged into the index,
- but before the result is committed to the branch. - but before the result is committed to the branch.
- (Which is why it's passed the contents of the local branches's - (Which is why it's passed the contents of the local branches's
@ -652,7 +656,7 @@ stageJournal jl commitindex = withIndex $ withOtherTmp $ \tmpdir -> do
-} -}
handleTransitions :: JournalLocked -> Transitions -> [Git.Ref] -> Annex Bool handleTransitions :: JournalLocked -> Transitions -> [Git.Ref] -> Annex Bool
handleTransitions jl localts refs = do handleTransitions jl localts refs = do
m <- M.fromList <$> mapM getreftransition refs m <- M.fromList <$> mapM getRefTransitions refs
let remotets = M.elems m let remotets = M.elems m
if all (localts ==) remotets if all (localts ==) remotets
then return False then return False
@ -663,11 +667,6 @@ handleTransitions jl localts refs = do
performTransitionsLocked jl allts (localts /= allts) transitionedrefs performTransitionsLocked jl allts (localts /= allts) transitionedrefs
ignoreRefs untransitionedrefs ignoreRefs untransitionedrefs
return True return True
where
getreftransition ref = do
ts <- parseTransitionsStrictly "remote"
<$> catFile ref transitionsLog
return (ref, ts)
{- Performs the specified transitions on the contents of the index file, {- Performs the specified transitions on the contents of the index file,
- commits it to the branch, or creates a new branch. - commits it to the branch, or creates a new branch.

View file

@ -7,7 +7,7 @@
- done that is listed in the remote branch by checking that the local - done that is listed in the remote branch by checking that the local
- branch contains the same transition, with the same or newer start time. - branch contains the same transition, with the same or newer start time.
- -
- Copyright 2013-2019 Joey Hess <id@joeyh.name> - Copyright 2013-2021 Joey Hess <id@joeyh.name>
- -
- Licensed under the GNU AGPL version 3 or higher. - Licensed under the GNU AGPL version 3 or higher.
-} -}
@ -19,6 +19,9 @@ module Logs.Transitions where
import Annex.Common import Annex.Common
import Annex.VectorClock import Annex.VectorClock
import Logs.Line import Logs.Line
import qualified Git
import Git.Types (fromRef)
import Annex.CatFile
import qualified Data.Set as S import qualified Data.Set as S
import Data.Either import Data.Either
@ -100,3 +103,9 @@ knownTransitionList = nub . rights . map transition . S.elems
recordTransitions :: (RawFilePath -> (L.ByteString -> Builder) -> Annex ()) -> Transitions -> Annex () recordTransitions :: (RawFilePath -> (L.ByteString -> Builder) -> Annex ()) -> Transitions -> Annex ()
recordTransitions changer t = changer transitionsLog $ recordTransitions changer t = changer transitionsLog $
buildTransitions . S.union t . parseTransitionsStrictly "local" buildTransitions . S.union t . parseTransitionsStrictly "local"
getRefTransitions :: Git.Ref -> Annex (Git.Ref, Transitions)
getRefTransitions ref = do
ts <- parseTransitionsStrictly (fromRef ref)
<$> catFile ref transitionsLog
return (ref, ts)