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.
This commit is contained in:
Joey Hess 2014-07-04 11:36:59 -04:00
parent cb48baed33
commit d41849bc23
Failed to extract signature
15 changed files with 90 additions and 61 deletions

View file

@ -221,7 +221,7 @@ commitStaged = do
case v of
Left _ -> return False
Right _ -> do
ok <- Command.Sync.commitStaged ""
ok <- Command.Sync.commitStaged Git.Branch.AutomaticCommit ""
when ok $
Command.Sync.updateSyncBranch =<< inRepo Git.Branch.current
return ok

View file

@ -83,7 +83,7 @@ onChange file
[ "merging", Git.fromRef changedbranch
, "into", Git.fromRef current
]
void $ liftAnnex $ autoMergeFrom changedbranch (Just current)
void $ liftAnnex $ autoMergeFrom changedbranch (Just current) Git.Branch.AutomaticCommit
mergecurrent _ = noop
handleDesynced = case fromTaggedBranch changedbranch of