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