refactoring
This commit is contained in:
parent
058193adc6
commit
720baf820e
2 changed files with 17 additions and 9 deletions
|
@ -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.
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue