fix test suite when git is too old to understand --allow-unrelated-histories
This commit is contained in:
parent
06cbaa4233
commit
b6a3d0ae10
2 changed files with 16 additions and 6 deletions
17
Git/Merge.hs
17
Git/Merge.hs
|
@ -10,6 +10,7 @@ module Git.Merge (
|
||||||
CommitMode(..),
|
CommitMode(..),
|
||||||
merge,
|
merge,
|
||||||
merge',
|
merge',
|
||||||
|
mergeUnrelatedHistoriesParam,
|
||||||
stageMerge,
|
stageMerge,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
@ -44,15 +45,21 @@ merge' extraparams branch mergeconfig commitmode r
|
||||||
|
|
||||||
merge'' :: [CommandParam] -> [MergeConfig] -> Repo -> IO Bool
|
merge'' :: [CommandParam] -> [MergeConfig] -> Repo -> IO Bool
|
||||||
merge'' ps mergeconfig r
|
merge'' ps mergeconfig r
|
||||||
| MergeUnrelatedHistories `elem` mergeconfig =
|
| MergeUnrelatedHistories `elem` mergeconfig = do
|
||||||
ifM (Git.Version.older "2.9.0")
|
up <- mergeUnrelatedHistoriesParam
|
||||||
( go ps
|
go (ps ++ maybeToList up)
|
||||||
, go (ps ++ [Param "--allow-unrelated-histories"])
|
|
||||||
)
|
|
||||||
| otherwise = go ps
|
| otherwise = go ps
|
||||||
where
|
where
|
||||||
go ps' = runBool ps' r
|
go ps' = runBool ps' r
|
||||||
|
|
||||||
|
{- Git used to default to merging unrelated histories; newer versions need
|
||||||
|
- an option. -}
|
||||||
|
mergeUnrelatedHistoriesParam :: IO (Maybe CommandParam)
|
||||||
|
mergeUnrelatedHistoriesParam = ifM (Git.Version.older "2.9.0")
|
||||||
|
( return Nothing
|
||||||
|
, return (Just (Param "--allow-unrelated-histories"))
|
||||||
|
)
|
||||||
|
|
||||||
{- Stage the merge into the index, but do not commit it.-}
|
{- Stage the merge into the index, but do not commit it.-}
|
||||||
stageMerge :: Ref -> [MergeConfig] -> Repo -> IO Bool
|
stageMerge :: Ref -> [MergeConfig] -> Repo -> IO Bool
|
||||||
stageMerge branch = merge''
|
stageMerge branch = merge''
|
||||||
|
|
5
Test.hs
5
Test.hs
|
@ -36,6 +36,7 @@ import qualified Git.Types
|
||||||
import qualified Git.Ref
|
import qualified Git.Ref
|
||||||
import qualified Git.LsTree
|
import qualified Git.LsTree
|
||||||
import qualified Git.FilePath
|
import qualified Git.FilePath
|
||||||
|
import qualified Git.Merge
|
||||||
import qualified Annex.Locations
|
import qualified Annex.Locations
|
||||||
#ifndef mingw32_HOST_OS
|
#ifndef mingw32_HOST_OS
|
||||||
import qualified Types.GitConfig
|
import qualified Types.GitConfig
|
||||||
|
@ -1739,7 +1740,9 @@ test_export_import = intmpclonerepoInDirect $ do
|
||||||
|
|
||||||
writedir "import" (content "import")
|
writedir "import" (content "import")
|
||||||
git_annex "import" ["master", "--from", "foo"] @? "import from dir failed"
|
git_annex "import" ["master", "--from", "foo"] @? "import from dir failed"
|
||||||
boolSystem "git" [Param "merge", Param "foo/master", Param "-mmerge", Param "--allow-unrelated-histories"] @? "git merge foo/master failed"
|
up <- Git.Merge.mergeUnrelatedHistoriesParam
|
||||||
|
let mergeps = [Param "merge", Param "foo/master", Param "-mmerge"] ++ maybeToList up
|
||||||
|
boolSystem "git" mergeps @? "git merge foo/master failed"
|
||||||
-- FIXME fails when in an adjusted unlocked branch because
|
-- FIXME fails when in an adjusted unlocked branch because
|
||||||
-- it's imported locked
|
-- it's imported locked
|
||||||
--annexed_present "import"
|
--annexed_present "import"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue