Subject: Re: [PATCH v13] [GSOC] commit: add --trailer option

From: Junio C Hamano <[email-masked]>
Date: Tue, 23 Mar 2021 10:12:35 -0700

ZheNing Hu <[email-masked]> writes:

> Junio C Hamano <[email-masked]> 于2021年3月23日周二 下午2:19写道：
>>
>> Christian Couder <[email-masked]> 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.
>>
>
> Maybe like this?

Code is not an important part.  We should think through
ramifications of making (and not making) such a change first.