Re: [PATCH v5 00/13] send-email: various optimizations to speed up by >2x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 31, 2021 at 11:53:04AM +0200, Ævar Arnfjörð Bjarmason wrote:

> > I guess here:
> >
> >>     @@ git-send-email.perl: sub read_config {
> >>      -			my @values = Git::config(@repo, $key);
> >>      -			next unless @values;
> >>      +			my @values = @{$known_keys->{$key}};
> >>     ++			@values = grep { defined } @values;
> >>       			next if $configured->{$setting}++;
> >>       			@$target = @values;
> >>       		}
> >>       		else {
> >>      -			my $v = Git::config(@repo, $key);
> >>     --			next unless defined $v;
> >>      +			my $v = $known_keys->{$key}->[0];
> >>     + 			next unless defined $v;
> >>       			next if $configured->{$setting}++;
> >>       			$$target = $v;
> >>     - 		}
> >
> > we'd ignore such undef values, whereas presumably before they'd have
> > triggered an error via Git::config(). I don't think it matters all that
> > much either way, though.
> 
> They didn't error before, they were treated the same as the empty
> string.
> 
> This is because Git.pm uses "git config --get" to retrieve them, but we
> now use "--list --null".
> 
> This ultimately comes down to a limitation of git-config's one-shot CLI
> interface. You get the empty string and zero exit code for both of:
> 
>     git -c foo.bar= config --get foo.bar
>     git -c foo.bar config --get foo.bar

Ah, OK. Thanks for clarifying.

> Ignoring them here for list values is technically a behavior change if
> we were treating this as a black box, but in reality we know that these
> could only conceivable be useful for the bool values, for list values
> like "list of e-mail addresses" it makes no sense to have that in a the
> middle of a list, and we were implicitly ignoring them anyway before
> when we processed the empty string.

Right, it was the list one I was most puzzled by. But if we were already
conflating implicit-bool and the empty string, I think it's OK.  I agree
that all of this is something that _shouldn't_ happen in the first
place, for well-formed config.

-Peff



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux