Re: I lost my commit signature
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Jun 14, 2016, 10:57 UTC
- Message-ID
- <e129da8e-4e1d-c535-ca62-d2a4c2e23799@drmicha.warpmail.net>
- In-Reply-To
- <20160614094121.GA13971@sigill.intra.peff.net>
Jeff King venit, vidit, dixit 14.06.2016 11:41:
Show 26 quoted lines
> On Tue, Jun 14, 2016 at 04:39:38PM +0800, ZhenTian wrote: > >> I want to set gpg -v to pgp.program, but if I set it, it can't call gpg: >> ``` >> error: cannot run gpg -v: No such file or directory >> error: could not run gpg. >> fatal: failed to write commit object >> ``` >> >> I have tried set gpg.program value to `gpg|/tmp/log`, `/usr/bin/gpg >> -v`, `gpg -v`, `"/usr/bin/gpg -v"` >> >> only after I set to `gpg` or `/usr/bin/gpg` without any argument, it will work. > > Ah, right. Most of the time we run such programs as shell commands, but > it looks like we do not. So you'd have to do something like: > > cat >/tmp/fake-gpg <<-\EOF > #!/bin/sh > gpg -v "$@" > EOF > chmod +x /tmp/fake-gpg > git config gpg.program /tmp/fake-gpg > > -Peff >
The content of "gpg.program" is used as argv[0] when we build up various commands to be run; we expect it to heed standard gpg options.
On the other hand:
git -c gpg.program=echo commit -S
'successfully' creates a commit that has
gpgsig -bsau Michael J Gruber <mickey@mouse.dis>
as the last header line. gpg.program=true fails (as does cat, unhappy with the options), so apparently we do some error checking but not enough.
Michael