Subject: Re: [PATCH] perl: add new module Git::Config for cached 'git config' access

From: Sam Vilain <[email-masked]>
Date: Wed, 08 Apr 2009 21:50:39 +1200

Junio C Hamano wrote:
> Jakub Narebski <[email-masked]> writes:
>
>   
>> Errr... wouldn't it be better to simply use 
>>
>> +		my ($item, $value) = split("\n", $_, 2)
>>
>> here? Have you tested Git::Config with a "null" value, i.e. something
>> like
>>
>>     [section]
>>         noval
>>
>> in the config file (which evaluates to 'true' with '--bool' option)?
>> Because from what I remember from the discussion on the 
>> "git config --null --list" format the lack of "\n" is used to
>> distinguish between noval (which is equivalent to 'true'), and empty
>> value (which is equivalent to 'false')
>>
>>     [boolean
>>         noval        # equivalent to 'true'
>>         empty1 =     # equivalent to 'false'
>>         empty2 = ""  # equivalent to 'false'
>>     
>
> I do not mind if the _write method always wrote out
>
> 	[core]
>         	autocrlf = true
>
> for a variable that is true, but it should be able to read existing
>
> 	[core]
>         	autocrlf
>
> correctly.
>   

Yep - that's what I thought was reasonable behaviour as well and what my 
submission does.

> Sam, I think you meant to make me squash the "Oops, for no good reason,
> here is a fix-up" into the previous one, but for this case, I'd appreciate
> a re-roll of the series, that includes a test to read from an existing
> configuration file that contains such "presense of the name alone means
> boolean true" variables.
>   

Sure, I rebased the series to have the fix-ups at the right places, but 
didn't think it was an interesting enough change to rate a full 
re-submission. The series at git://github.com/samv/git branch 
perl-Config has the minor change put into the place it was introduced. I 
put a little note to this effect after the --- line.

I'm not quite sure what you want squashed where, maybe just edit the 
below list to be how you'd like it,

pick d43238e perl: add new module Git::Config for cached 'git config' access
pick 5ea135d perl: make Git.pm use new Git::Config module
pick b2865bc perl: make Git::Config use --null
pick 28eecdc perl: fix no value items in Git::Config

:-)

Sam