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 /Command/Sync.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 'Command/Sync.hs')
-rw-r--r-- | Command/Sync.hs | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/Command/Sync.hs b/Command/Sync.hs index 983689118..50c6fbe69 100644 --- a/Command/Sync.hs +++ b/Command/Sync.hs @@ -127,14 +127,12 @@ commit = next $ next $ ifM isDirect showStart "commit" "" void stageDirect void preCommitDirect - commitStaged commitmessage + commitStaged Git.Branch.ManualCommit commitmessage , do showStart "commit" "" Annex.Branch.commit "update" - -- Commit will fail when the tree is clean, so ignore failure. - _ <- inRepo $ tryIO . Git.Command.runQuiet - [ Param "commit" - , Param "-a" + inRepo $ Git.Branch.commitQuiet Git.Branch.ManualCommit + [ Param "-a" , Param "-m" , Param commitmessage ] @@ -143,14 +141,14 @@ commit = next $ next $ ifM isDirect where commitmessage = "git-annex automatic sync" -commitStaged :: String -> Annex Bool -commitStaged commitmessage = go =<< inRepo Git.Branch.currentUnsafe +commitStaged :: Git.Branch.CommitMode -> String -> Annex Bool +commitStaged commitmode commitmessage = go =<< inRepo Git.Branch.currentUnsafe where go Nothing = return False go (Just branch) = do runAnnexHook preCommitAnnexHook parent <- inRepo $ Git.Ref.sha branch - void $ inRepo $ Git.Branch.commit False commitmessage branch + void $ inRepo $ Git.Branch.commit commitmode False commitmessage branch (maybeToList parent) return True @@ -169,7 +167,7 @@ mergeLocal (Just branch) = go =<< needmerge go False = stop go True = do showStart "merge" $ Git.Ref.describe syncbranch - next $ next $ autoMergeFrom syncbranch (Just branch) + next $ next $ autoMergeFrom syncbranch (Just branch) Git.Branch.ManualCommit pushLocal :: Maybe Git.Ref -> CommandStart pushLocal b = do @@ -221,7 +219,7 @@ mergeRemote remote b = case b of Just thisbranch -> and <$> (mapM (merge (Just thisbranch)) =<< tomerge (branchlist b)) where - merge thisbranch = flip autoMergeFrom thisbranch . remoteBranch remote + merge thisbranch br = autoMergeFrom (remoteBranch remote br) thisbranch Git.Branch.ManualCommit tomerge = filterM (changed remote) branchlist Nothing = [] branchlist (Just branch) = [branch, syncBranch branch] |