On 4/9/19 11:58 PM, Jonathan Nieder wrote:
> (thanks for cc-ing bmc!)
> Hi,
>
> Heinrich Schuchardt wrote:
>
>> Subject: send-email: fix transferencoding config option
>
> nit: "fix" doesn't tell me what was broken and what you improved about
> it. Here, I think you mean "respect transferencoding config option".
>
>> Since e67a228cd8a ("send-email: automatically determine transfer-encoding")
>> the value of sendmail.transferencoding is ignored because when parsing
>> the configuration $target_xfer_encoding is not initial anymore.
>
> nit: I was confused when first reading this, since I read "the
> configuration $target_xfer_encoding" as a single phrase. A comma
> after "configuration" might help.
>
>> Instead of initializing variable $target_xfer_encoding on definition we
>> have to set it to the default value of 'auto' if is initial after parsing
>> the configuration files.
>
> run-on sentence. I'm having trouble parsing this part.
>
> Can you start from the beginning and describe again what this does?
> In other words, tell me
>
> - What is the user-facing effect of the change? What workflow is it
> part of?
I am working with a repository which uses CRLF line endings. So when
sending patches I should use an appropriate encoding. There should be
two ways to do it:
- call git-send-email with --transfer-encoding base64
- git config --global sendmail.transferencoding base64
Unfortunately the latter method did not show the expected result. The
setting was simply ignored.
>
> - Any risks or complications?
None that I am aware of.
>
> - Any technical details that might be interesting to the later reader?
As I tried to explain above the setting is ignored because a variable is
initialized too early.
>
> - What does this allow me to do that I couldn't do before?
You can use a global setting for the transfer encoding.
>
> The code can speak for itself, so this should primarily focus on the
> intention behind the change.
>
> [...]
>> --- a/Documentation/git-send-email.txt
>> +++ b/Documentation/git-send-email.txt
>> @@ -146,7 +146,7 @@ Note that no attempts whatsoever are made to validate
>> the encoding.
>> even more opaque. auto will use 8bit when possible, and
>> quoted-printable
>> otherwise.
>> +
>> -Default is the value of the `sendemail.transferEncoding` configuration
>> +Default is the value of the `sendemail.transferencoding` configuration
>
> Unrelated change?
>
> [...]
>> --- a/git-send-email.perl
>> +++ b/git-send-email.perl
>> @@ -239,7 +239,7 @@ sub do_edit {
>> my (@suppress_cc);
>> my ($auto_8bit_encoding);
>> my ($compose_encoding);
>> -my $target_xfer_encoding = 'auto';
>> +my ($target_xfer_encoding);
>>
>> my ($debug_net_smtp) = 0; # Net::SMTP, see send_message()
>>
>> @@ -446,6 +446,8 @@ sub read_config {
>> $smtp_encryption = 'ssl';
>> }
>> }
>> +
>> + $target_xfer_encoding = 'auto' unless (defined $target_xfer_encoding);
>
> Makes sense.
>
> Is there a way to cover this in tests (t/t9001-send-email.sh) so we
> can avoid regressing again?
I will give it a try.
>
> The rest looks good.
>
> Thanks for noticing, and hope that helps,
> Jonathan
>
Thanks for reviewing.
Best regards
Heinrich