Christian Couder <christian.couder@xxxxxxxxx> writes: > If you want nothing to happen when $ARG isn't set, you can change the > config option to something like: > > $ git config trailer.sign.command "NAME='\$ARG'; test -n \"\$NAME\" && > git log --author=\"\$NAME\" -1 --format='format:%aN <%aE>' || true" > > (This is because it looks like $ARG is replaced only once with the > actual value, which is perhaps a bug. Otherwise something like the > following might work: I do not know the origin of that code in trailers.c but it feels quite confused and error prone to use textual replacement with strbuf_replace(). Why doesn't the code, which knows it will use shell to execute the command line given by the end user in the configuration, to just export ARG as an environment variable and be done with it? It would also avoid quoting problem etc.