threads / discuss / 40162

git-remote-helper behavior on Windows, not recognizing blank line as terminator

Subject: git-remote-helper behavior on Windows, not recognizing blank line as terminator

## tl;dr

3 messages between Aug 23, 2015 and Aug 25, 2015.

replies: 2people: 2as markdown or json

Anish Athalye· Aug 23, 2015, 18:40 UTC · lore
Hello,
I'm having some issues with git remote helper behavior on Windows.

According to the protocol (https://www.kernel.org/pub/software/scm/git/docs/gitremote-helpers.html), when doing things like listing capabilities, git expects the remote helper to send back a blank line when it's done.

I'm having trouble having git recognize the blank line (see https://github.com/anishathalye/git-remote-dropbox/issues/13#issuecomment-133894730 for details).

Has anyone come across this behavior before? Am I doing something wrong, or could there be a bug in git? What's the best way to proceed?

Any help or suggestions would be greatly appreciated!

Regards, Anish

John Keeping· Aug 24, 2015, 09:24 UTC · re: Anish Athalye · lore

Re: git-remote-helper behavior on Windows, not recognizing blank line as terminator

On Sun, Aug 23, 2015 at 11:40:17AM -0700, Anish Athalye wrote:
Show 16 quoted lines
> I'm having some issues with git remote helper behavior on Windows.
> 
> According to the protocol
> (https://www.kernel.org/pub/software/scm/git/docs/gitremote-helpers.html),
> when doing things like listing capabilities, git expects the remote
> helper to send back a blank line when it's done.
> 
> I'm having trouble having git recognize the blank line (see
> https://github.com/anishathalye/git-remote-dropbox/issues/13#issuecomment-133894730
> for details).
> 
> Has anyone come across this behavior before? Am I doing something
> wrong, or could there be a bug in git? What's the best way to proceed?
> 
> 
> Any help or suggestions would be greatly appreciated!

The remote-helper parser tends to be very strict about its input. I suspect that on Windows you are sending CRLF rather than LF, so Git sees a line containing CR.

By default the stdio streams are probably open in "text" mode, which will convert "\n" to "\r\n". You probably need to reopen stdout in binary mode to make sure the output is correct.

Anish Athalye· Aug 25, 2015, 01:52 UTC · re: John Keeping · lore

Re: git-remote-helper behavior on Windows, not recognizing blank line as terminator

Wow, yeah, that was it. Thanks for your help!
Show 27 quoted lines
> On Aug 24, 2015, at 2:24 AM, John Keeping <john@keeping.me.uk> wrote:
> 
>> On Sun, Aug 23, 2015 at 11:40:17AM -0700, Anish Athalye wrote:
>> I'm having some issues with git remote helper behavior on Windows.
>> 
>> According to the protocol
>> (https://www.kernel.org/pub/software/scm/git/docs/gitremote-helpers.html),
>> when doing things like listing capabilities, git expects the remote
>> helper to send back a blank line when it's done.
>> 
>> I'm having trouble having git recognize the blank line (see
>> https://github.com/anishathalye/git-remote-dropbox/issues/13#issuecomment-133894730
>> for details).
>> 
>> Has anyone come across this behavior before? Am I doing something
>> wrong, or could there be a bug in git? What's the best way to proceed?
>> 
>> 
>> Any help or suggestions would be greatly appreciated!
> 
> The remote-helper parser tends to be very strict about its input.  I
> suspect that on Windows you are sending CRLF rather than LF, so Git sees
> a line containing CR.
> 
> By default the stdio streams are probably open in "text" mode, which
> will convert "\n" to "\r\n".  You probably need to reopen stdout in
> binary mode to make sure the output is correct.

← back to recent threads