Subject: Re: [PATCHv6] Add contrib/credentials/netrc with GPG support

From: Ted Zlatanov <[email-masked]>
Date: Mon, 25 Feb 2013 11:24:02 -0500

On Fri, 8 Feb 2013 01:18:55 -0500 Jeff King <[email-masked]> wrote: 

>> +	# the following check is copied from Net::Netrc, for non-GPG files
>> +	# OS/2 and Win32 do not handle stat in a way compatable with this check :-(

JK> s/compatable/compatible/

This is from the Net::Netrc module.  Fixed in my commit but eh...

JK> You mention os/2 and Win32 here, but the check has more:

>> +	unless ($gpgmode || $options{insecure} ||
>> +		$^O eq 'os2'
>> +		|| $^O eq 'MSWin32'
>> +		|| $^O eq 'MacOS'
>> +		|| $^O =~ /^cygwin/) {

JK> Does MacOS really not handle stat? Or is this old MacOS, not OS X?

This is all out of Net::Netrc, and yes, it's pre-Mac OS X.  I think it's
safe to leave as is, but I can remove OS/2 and MacOS if you prefer.

JK> So this will convert:
JK>   machine foo port smtp
JK> in the netrc into (protocol => "smtp", host => "foo"), but:
JK>   machine foo port 25
JK> into (protocol => undef, host => "foo:25"), right? That makes sense to
JK> me.

Yes.  test.pl checks that host=foo doesn't find the above, as well.

JK> I don't know if you want to take the hit of relying on Git.pm (it is
JK> nice for the helper to be totally standalone and copy-able), but one
JK> obvious possible refactor would be to use the credential read/write
JK> functions recently added there. I'm OK with not doing that, though.

JK> It may also be worth building on top of the regular git test harness.
JK> It's more work, but the resulting code (and the output) will be much
JK> more readable.

At least for now let's leave it standalone.  When and if it moves into
the core, we can change it to use the core's Git.pm and test suite.  The
code and the tests are small enough that I think using Perl's Test
module makes the most sense right now.

JK> Printf? Bleh, isn't this supposed to be perl? :P

What?  Was I supposed to use formats?!?!

JK> You are depending on whatever the user has in their ~/.netrc, no?
JK> Wouldn't it make more sense to ship a sample netrc and run all of the
JK> tests with "-f netrc.example"?

Yes.  See test.netrc.

Thanks
Ted