diff options
author | Joey Hess <joey@kitenet.net> | 2014-07-04 11:36:59 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-07-04 11:53:51 -0400 |
commit | dafe3950f721ce80d9fa8696daed626a071dab01 (patch) | |
tree | b3bb6eb22628506b356932793daa27a021429d4b /Git/Merge.hs | |
parent | 25e715f48fb1f4caecbcf36f5ea2ff55ecf6c3a9 (diff) |
support commit.gpgsign
Support users who have set commit.gpgsign, by disabling gpg signatures for
git-annex branch commits and commits made by the assistant.
The thinking here is that a user sets commit.gpgsign intending the commits
that they manually initiate to be gpg signed. But not commits made in the
background, whether by a deamon or implicitly to the git-annex branch.
gpg signing those would be at best a waste of CPU and at worst would fail,
or flood the user with gpg passphrase prompts, or put their signature on
changes they did not directly do.
See Debian bug #753720.
Also makes all commits done by git-annex go through a few central control
points, to make such changes easier in future.
Also disables commit.gpgsign in the test suite.
This commit was sponsored by Antoine Boegli.
Diffstat (limited to 'Git/Merge.hs')
-rw-r--r-- | Git/Merge.hs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/Git/Merge.hs b/Git/Merge.hs index d661db978..12dfa7c1f 100644 --- a/Git/Merge.hs +++ b/Git/Merge.hs @@ -11,14 +11,19 @@ import Common import Git import Git.Command import Git.BuildVersion +import Git.Branch (CommitMode(..)) {- Avoids recent git's interactive merge. -} -mergeNonInteractive :: Ref -> Repo -> IO Bool -mergeNonInteractive branch +mergeNonInteractive :: Ref -> CommitMode -> Repo -> IO Bool +mergeNonInteractive branch commitmode | older "1.7.7.6" = merge [Param $ fromRef branch] - | otherwise = merge [Param "--no-edit", Param $ fromRef branch] + | otherwise = merge $ [Param "--no-edit", Param $ fromRef branch] where - merge ps = runBool $ Param "merge" : ps + merge ps = runBool $ cp ++ [Param "merge"] ++ ps + cp + | commitmode == AutomaticCommit = + [Param "-c", Param "commit.gpgsign=false"] + | otherwise = [] {- Stage the merge into the index, but do not commit it.-} stageMerge :: Ref -> Repo -> IO Bool |