Today I met somebody and signed his PGP key. Then I thought I should check my own key, so I did this:
$ gpg --recv-key 713660A7
which reported that I got a few new signatures.
I have my GnuPG keys in a Git repository. Out of habit, I did
$ git diff -U0
and was pleasantly surprised to see:
diff --git i/gnupg/pubring.gpg w/gnupg/pubring.gpg
index 22b29b8..8beac85 100644
@@ -22,0 +23,1 @@ pub 4096R/713660A7 2011-10-01 Junio C Hamano
+sig 00411886 2012-07-20 Linus Torvalds
@@ -42,0 +44,1 @@ uid Junio C Hamano
in the output.
The surprise is not that I got a signature by Linus (I gave him the key fingerprint when I met him in person during OSCON week). It is that I am seeing a textual diff, which I completely forgot about having arranged to happen.
In the directory, I have this in the .gitattributes file:
and the repository has this in its .git/config file:
textconv = gpg -v
xfuncname = "^((pub|uid) .*)"
These two, taken together, tells Git when comparing any file whose name matches "*ring.pgp", pass its contents to "gpg -v" command before running its comparison logic. "gpg -v" command, when fed a keyring, shows the textual report of what is in the keyring, and that is how I get the above output. And the xfuncname thing tells Git to show the key's name on the @@ lines.