2012-06-23 14:22:56 +00:00
|
|
|
{- git merging
|
|
|
|
-
|
2014-06-09 22:01:30 +00:00
|
|
|
- Copyright 2012, 2014 Joey Hess <joey@kitenet.net>
|
2012-06-23 14:22:56 +00:00
|
|
|
-
|
|
|
|
- Licensed under the GNU GPL version 3 or higher.
|
|
|
|
-}
|
|
|
|
|
|
|
|
module Git.Merge where
|
|
|
|
|
|
|
|
import Common
|
|
|
|
import Git
|
|
|
|
import Git.Command
|
2013-08-02 22:31:01 +00:00
|
|
|
import Git.BuildVersion
|
2012-06-23 14:22:56 +00:00
|
|
|
|
|
|
|
{- Avoids recent git's interactive merge. -}
|
|
|
|
mergeNonInteractive :: Ref -> Repo -> IO Bool
|
2012-07-17 18:50:37 +00:00
|
|
|
mergeNonInteractive branch
|
2014-02-19 05:09:17 +00:00
|
|
|
| older "1.7.7.6" = merge [Param $ fromRef branch]
|
|
|
|
| otherwise = merge [Param "--no-edit", Param $ fromRef branch]
|
2013-03-03 17:39:07 +00:00
|
|
|
where
|
|
|
|
merge ps = runBool $ Param "merge" : ps
|
2014-06-09 22:01:30 +00:00
|
|
|
|
|
|
|
{- Stage the merge into the index, but do not commit it.-}
|
|
|
|
stageMerge :: Ref -> Repo -> IO Bool
|
|
|
|
stageMerge branch = runBool
|
|
|
|
[ Param "merge"
|
|
|
|
, Param "--quiet"
|
|
|
|
, Param "--no-commit"
|
|
|
|
-- Without this, a fast-forward merge is done, since it involves no
|
|
|
|
-- commit.
|
|
|
|
, Param "--no-ff"
|
|
|
|
, Param $ fromRef branch
|
|
|
|
]
|