diff options
-rw-r--r-- | Command/Merge.hs | 4 | ||||
-rw-r--r-- | Command/Sync.hs | 22 | ||||
-rw-r--r-- | doc/todo/support_--allow-unrelated-histories_in_git_2.8.1pre.mdwn | 3 |
3 files changed, 16 insertions, 13 deletions
diff --git a/Command/Merge.hs b/Command/Merge.hs index 908f3c1aa..4f1913978 100644 --- a/Command/Merge.hs +++ b/Command/Merge.hs @@ -9,7 +9,7 @@ module Command.Merge where import Command import qualified Annex.Branch -import Command.Sync (prepMerge, mergeLocal, getCurrBranch) +import Command.Sync (prepMerge, mergeLocal, getCurrBranch, mergeConfig) cmd :: Command cmd = command "merge" SectionMaintenance @@ -33,4 +33,4 @@ mergeBranch = do mergeSynced :: CommandStart mergeSynced = do prepMerge - mergeLocal =<< join getCurrBranch + mergeLocal mergeConfig =<< join getCurrBranch diff --git a/Command/Sync.hs b/Command/Sync.hs index 3e68ad8cc..1169b95c8 100644 --- a/Command/Sync.hs +++ b/Command/Sync.hs @@ -10,6 +10,7 @@ module Command.Sync ( cmd, CurrBranch, getCurrBranch, + mergeConfig, merge, prepMerge, mergeLocal, @@ -112,8 +113,8 @@ seek o = allowConcurrentOutput $ do -- These actions cannot be run concurrently. mapM_ includeCommandAction $ concat [ [ commit o ] - , [ withbranch mergeLocal ] - , map (withbranch . pullRemote o mergeconfig) gitremotes + , [ withbranch (mergeLocal mergeConfig) ] + , map (withbranch . pullRemote o mergeConfig) gitremotes , [ mergeAnnex ] ] when (contentOption o) $ @@ -124,16 +125,14 @@ seek o = allowConcurrentOutput $ do -- and merge again to avoid our push overwriting -- those changes. mapM_ includeCommandAction $ concat - [ map (withbranch . pullRemote o mergeconfig) gitremotes + [ map (withbranch . pullRemote o mergeConfig) gitremotes , [ commitAnnex, mergeAnnex ] ] void $ includeCommandAction $ withbranch pushLocal -- Pushes to remotes can run concurrently. mapM_ (commandAction . withbranch . pushRemote o) gitremotes - where - mergeconfig = [Git.Merge.MergeNonInteractive] - + type CurrBranch = (Maybe Git.Branch, Maybe Adjustment) {- There may not be a branch checked out until after the commit, @@ -169,6 +168,9 @@ getCurrBranch = do prepMerge :: Annex () prepMerge = Annex.changeDirectory =<< fromRepo Git.repoPath +mergeConfig :: [Git.Merge.MergeConfig] +mergeConfig = [Git.Merge.MergeNonInteractive] + merge :: CurrBranch -> [Git.Merge.MergeConfig] -> Git.Branch.CommitMode -> Git.Branch -> Annex Bool merge (Just b, Just adj) mergeconfig commitmode tomerge = updateAdjustedBranch tomerge (b, adj) mergeconfig commitmode @@ -246,8 +248,8 @@ commitStaged commitmode commitmessage = do void $ inRepo $ Git.Branch.commit commitmode False commitmessage branch parents return True -mergeLocal :: CurrBranch -> CommandStart -mergeLocal currbranch@(Just branch, madj) = go =<< needmerge +mergeLocal :: [Git.Merge.MergeConfig] -> CurrBranch -> CommandStart +mergeLocal mergeconfig currbranch@(Just branch, madj) = go =<< needmerge where syncbranch = syncBranch branch needmerge = ifM isBareRepo @@ -260,9 +262,9 @@ mergeLocal currbranch@(Just branch, madj) = go =<< needmerge go False = stop go True = do showStart "merge" $ Git.Ref.describe syncbranch - next $ next $ merge currbranch [Git.Merge.MergeNonInteractive] Git.Branch.ManualCommit syncbranch + next $ next $ merge currbranch mergeconfig Git.Branch.ManualCommit syncbranch branch' = maybe branch (adjBranch . originalToAdjusted branch) madj -mergeLocal (Nothing, _) = stop +mergeLocal _ (Nothing, _) = stop pushLocal :: CurrBranch -> CommandStart pushLocal b = do diff --git a/doc/todo/support_--allow-unrelated-histories_in_git_2.8.1pre.mdwn b/doc/todo/support_--allow-unrelated-histories_in_git_2.8.1pre.mdwn index bcbc220d2..bb8cbd161 100644 --- a/doc/todo/support_--allow-unrelated-histories_in_git_2.8.1pre.mdwn +++ b/doc/todo/support_--allow-unrelated-histories_in_git_2.8.1pre.mdwn @@ -16,4 +16,5 @@ but AFAICS, git-annex never uses `git pull`) > [[done]]; used the environment variable > `GIT_MERGE_ALLOW_UNRELATED_HISTORIES` which will hopefully land in git -> `next` (currently in `pu`) --[[Joey]] +> `next` (currently Junio has posted a patch but not even landed it in `pu` +> yet) --[[Joey]] |