git-annex gpg encryption fails here when GPG_AGENT_INFO is set, it needs to be supplied --use-agent to work.

Output from git-annex:

    copy file (to origin...) (gpg) gpg: can't query passphrase in batch mode
    gpg: decryption failed: secret key not available
    Command gpg ["--batch","--no-tty","--quiet","--trust-model","always","--decrypt"] failed; exit code 2
    
    git-annex: user error (Command gpg ["--batch","--no-tty","--quiet","--trust-model","always","--decrypt"] failed; exit code 2)
    failed

Reproduced on command-line:

    [0 zerodogg@browncoats ~]$ echo test > testfile
    [0 zerodogg@browncoats ~]$ gpg -e testfile
    [0 zerodogg@browncoats ~]$ gpg --batch --no-tty --quiet --trust-model always --decrypt testfile.gpg 
    gpg: can't query passphrase in batch mode
    gpg: decryption failed: secret key not available
    [2 zerodogg@browncoats ~]$ gpg --use-agent --batch --no-tty --quiet --trust-model always --decrypt testfile.gpg
    test
    [0 zerodogg@browncoats ~]$ 

A patch to fix this issue:


    From 77cb02d15245e9ad6e127388adcda960000fb3b8 Mon Sep 17 00:00:00 2001
    From: Eskild Hustvedt <code@zerodogg.org>
    Date: Fri, 17 Aug 2012 09:21:44 +0200
    Subject: [PATCH] Explicitly enable agent to ensure decryption works
    
    Otherwise gpg will fail when GPG_AGENT_INFO is set in certain cases.
    ---
     Utility/Gpg.hs |    2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs
    index e13afe5..c28b209 100644
    --- a/Utility/Gpg.hs
    +++ b/Utility/Gpg.hs
    @@ -29,7 +29,7 @@ stdParams params = do
        b <- getEnv "GPG_BATCH"
        let batch = if isNothing e && isNothing b
            then []
    -       else ["--batch", "--no-tty"]
    +       else ["--batch", "--no-tty", "--use-agent"]
        return $ batch ++ defaults ++ toCommand params
        where
            -- be quiet, even about checking the trustdb
    -- 
    1.7.10.4

> Thanks, [[done]].. I never noticed this since I have use-agent set in
> gpg.conf. --[[Joey]