From: Junio C Hamano Date: Sat, 12 Jul 2025 00:05:44 GMT Subject: Re: [BUG] gpg.program: '~' not expanded to home directory Message-ID: In-Reply-To: Ross MacArthur writes: > `gpg.program` treats a leading ‘~’ literally, unlike other path > options such as `core.excludesfile`. I think that is correct; I do not think gpg.program is to give a path to the program, so comparison with core.excludesfile is probably not so appropriate. It gives a command line, e.g. "mysign --compat=gnupg", where the program "mysign" somewhere on your path can be told to behave in a way compatible to GPG when a command line option "--compat=gnupg" is given. We further append our own command line options when we invoke this command, like the "git config --help" on this variable says. When we want to verify GPG signature $signature in a file $file, for example, instead of running gpg, we would run: mysign --compat=gnupg --verify $signature - <$file > Expected: Git should expand ‘~’ to $HOME. So this expectation does not quite hold true. I wonder if letting your shell to handle the tilde expansion would make it work, though. Continuing with the example, it may look something like this, perhaps? $ git config set gpg.program "sh -c '~/mysign --compat=gnupg \"\$@\"' -"