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.

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.

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.



>
> 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

Reply via email to