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