mirror of
https://github.com/facebook/sapling.git
synced 2025-01-08 14:46:47 +03:00
64a2940225
Danek Duvall found that gpg-connect-agent of GnuPG 2.0 never starts gpg-agent daemon. The 2.1 way is documented as "gpg-coonect-agent /bye" [1], which appears to be different from the 2.0 way [2]. [1]: https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html [2]: https://www.gnupg.org/documentation/manuals/gnupg-2.0/Invoking-GPG_002dAGENT.html Since "gpg-agent --daemon" of GnuPG 2.1 never prints environment variables, "eval $(gpg-agent --daemon)" would be valid only for GnuPG < 2.1, and we'll need a different workaround for 2.0. I have no 2.0 environment, I won't implement it.
57 lines
1.1 KiB
Perl
57 lines
1.1 KiB
Perl
#require gpg
|
|
|
|
Test the GPG extension
|
|
|
|
$ cat <<EOF >> $HGRCPATH
|
|
> [extensions]
|
|
> gpg=
|
|
>
|
|
> [gpg]
|
|
> cmd=gpg --no-permission-warning --no-secmem-warning --no-auto-check-trustdb
|
|
> EOF
|
|
$ GNUPGHOME="$TESTTMP/gpg"; export GNUPGHOME
|
|
$ cp -R "$TESTDIR/gpg" "$GNUPGHOME"
|
|
|
|
Start gpg-agent, which is required by GnuPG v2
|
|
|
|
#if gpg21
|
|
$ gpg-connect-agent -q --subst /serverpid '/echo ${get serverpid}' /bye \
|
|
> >> $DAEMON_PIDS
|
|
#endif
|
|
|
|
and migrate secret keys
|
|
|
|
#if gpg2
|
|
$ gpg --no-permission-warning --no-secmem-warning --list-secret-keys \
|
|
> > /dev/null 2>&1
|
|
#endif
|
|
|
|
$ hg init r
|
|
$ cd r
|
|
$ echo foo > foo
|
|
$ hg ci -Amfoo
|
|
adding foo
|
|
|
|
$ hg sigs
|
|
|
|
$ HGEDITOR=cat hg sign -e 0
|
|
signing 0:e63c23eaa88a
|
|
Added signature for changeset e63c23eaa88a
|
|
|
|
|
|
HG: Enter commit message. Lines beginning with 'HG:' are removed.
|
|
HG: Leave message empty to abort commit.
|
|
HG: --
|
|
HG: user: test
|
|
HG: branch 'default'
|
|
HG: added .hgsigs
|
|
|
|
$ hg sigs
|
|
hgtest 0:e63c23eaa88ae77967edcf4ea194d31167c478b0
|
|
|
|
$ hg sigcheck 0
|
|
e63c23eaa88a is signed by:
|
|
hgtest
|
|
|
|
$ cd ..
|