From: Jakub Narebski Date: Mon, 12 Apr 2010 08:53:01 GMT Subject: Re: Local unset override global options Message-ID: In-Reply-To: <4BC2D9B5.6070400@drmicha.warpmail.net> Michael J Gruber writes: > Stefan Hajnoczi venit, vidit, dixit 12.04.2010 16:23: >> On Mon, Apr 12, 2010 at 9:13 AM, Michael J Gruber >> wrote: >> >>> have you tried setting it to an empty value? >> >> Yes I have tried it. An empty string causes the SMTP auth Perl module >> to choke. It expects a non-empty username and exits with an error. >> >> On my system I have patched git-send-email to perform this check: >> >> if (defined $smtp_authuser and length $smtp_authuser) { >> >> This works but feels like a hack. I think unset override could be >> useful for any git config option, not just sendemail.smtpuser. >> >> I'm not familiar with git internals; do you have other suggestions for >> solving this issue? > > I don't think it's possible to ignore/unset a specific global config > value right now, you can only change the path where that is looked for. > I see two ways to go forward: > > - Change users of the config (such as git-send-email) to treat empty > values as unset values. > > - Introduce a special value "unset" for config options. How does special case of no value, i.e. [sendemail] smtpuser rather than using empty value [sendemail] smtpuser = "" work? Also if we assume that nobody needs to have support for sendemail.smtpuser = 0, the condition could be simplified to if ($smtp_authuser) { -- Jakub Narebski Poland ShadeHawk on #git