On Wed, Feb 6, 2013 at 5:31 PM, Richard Hipp <d...@sqlite.org> wrote:
>
> On Wed, Feb 6, 2013 at 6:22 PM, Matt Welland <estifo...@gmail.com> wrote:
>>
>> I got some help from a co-worker to test this fix. He ran 1000's of clones 
>> with bash as a login shell and with tcsh as a login shell with zero 
>> problems. Can a couple other folks test it and can it then get into the 
>> official release (assuming no problems found)?
>>
>> It would be a real boon for me and some of my co-workers to have this 
>> working :)
>
>
> I want to understand the problem before I put in the fix.
>
> To try to help better understand what is happening, I have added a new query 
> parameter to the ssh: url scheme.  You can now say:
>
>     fossil clone ssh://user@host/path/to/repo?shell=/bin/bash new.fossil
>
> and that will cause Fossil to add the "/bin/bash" argument to the end of the 
> ssh command.  Please note that you can also do --sshtrace to get some 
> interactive information on what the ssh command is doing.


This idea seems good to me. I'll test it tomorrow. Thanks!

> On my debian system, the clone hangs with shell=/bin/tcsh and with 
> shell=/bin/sh but works with shell=/bin/bash.  Except if I also add the 
> --httptrace argument, then all three work.  The --httptrace argument disables 
> compression of the content moving over the wire.  So perhaps the problem is 
> that with compression turned on you occasionally get binary 0x00 bytes moving 
> over the wire, which confuses /bin/tcsh and /bin/dash but not /bin/bash.  
> Just a guess.


I did try "stty raw" thinking it might be xon/xoff or other
handshaking but got errors with the command.

> Note that you have long had a query parameter 
> fossil=/path/to/fossil/on/remote/system with the ssh: scheme that lets you 
> specify a particular version of fossil to run on the remote system.  At least 
> on my machine, my fossil binaries is not on the path set up by .cshrc, so I 
> also have to manually specify the location of the fossil binary if I change 
> from using /bin/bash.

Yep, I used the ?fossil= to do my testing. This approach with the
query parameters is very useful.

>>
>>
>> Cheers,
>>
>> Matt
>>
>>> The patch with junk eliminated, it is just one line change:
>>>
>>>
>>> Index: src/http_transport.c
>>> ==================================================================
>>> --- src/http_transport.c
>>> +++ src/http_transport.c
>>> @@ -222,10 +222,11 @@
>>>
>>>        zHost = mprintf("%s", g.urlName);
>>>      }
>>>      blob_append(&zCmd, " ", 1);
>>>      shell_escape(&zCmd, zHost);
>>>      fossil_print(" %s\n", zHost);  /* Show the conclusion of the SSH 
>>> command */
>>> +    blob_append(&zCmd, " exec /bin/sh", -1);
>>>      free(zHost);
>>>      popen2(blob_str(&zCmd), &sshIn, &sshOut, &sshPid);
>>>      if( sshPid==0 ){
>>>        fossil_fatal("cannot start ssh tunnel using [%b]", &zCmd);
>>>      }
>>>
>>>
>>>
>>>>>
>>>>>
>>>>> --
>>>>> D. Richard Hipp
>>>>> d...@sqlite.org
>>>>>
>>>>> _______________________________________________
>>>>> fossil-users mailing list
>>>>> fossil-users@lists.fossil-scm.org
>>>>> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>>>>>
>>>>
>>>
>>
>>
>> _______________________________________________
>> fossil-users mailing list
>> fossil-users@lists.fossil-scm.org
>> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>>
>
>
>
> --
> D. Richard Hipp
> d...@sqlite.org
>
> _______________________________________________
> fossil-users mailing list
> fossil-users@lists.fossil-scm.org
> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to