Hi, On Sun, 20 Jul 2008, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > > >> Ah, right. Would it be OK to add the `-x' flag to ssh instead? > > > > I think this would be the correct way, together with "-T". > > > >> I imagine that that might make git less portable to SSH implementations > >> other than OpenSSH, but I don't know if that is considered a problem. > > > > Well, this was to be expected, after what I wrote in response to 3. in > > http://thread.gmane.org/gmane.comp.version-control.git/76650/focus=2598 > > > > Reality always catches up with you, and here again we see that plink and > > other siblings of OpenSSH should be best handled with scripts, preferably > > ones that strip out options they do not recognize. > > > > IOW something like > > > > -- snip -- > > #!/bin/bash > > > > plinkopt= > > while test $# != 0 > > do > > case "$1" in > > -p) > > plinkopt="$plinkopt -P $2" > > shift > > ;; > > -*) > > # unrecognized; strip out > > ;; > > *) > > break > > ;; > > esac > > shift > > done > > > > exec plink $plinkopt "$@" > > -- snap -- > > I think that is a very sensible approach, but just like we have a few > "built-in" function-header regexps with customization possibilities for > the user, we might want to: > > * Have that "-x", "-T" in the command line we generate for OpenSSH; > > * Allow users to specify OpenSSH substitute via a configuration and/or > environment variable, and have them use your script; and > > * Have a built-in logic for selected and common "OpenSSH substitute", > e.g. plink. > > There is no reason to make users suffer an extra redirection for common > enough alternatives. > > Here is to get it started... How about this instead? -- snipsnap -- diff --git a/connect.c b/connect.c index 574f42f..7e7f4d3 100644 --- a/connect.c +++ b/connect.c @@ -603,7 +603,8 @@ struct child_process *git_connect(int fd[2], const char *url *arg++ = ssh; if (port) { - *arg++ = "-p"; + const char *opt = getenv("GIT_SSH_PORT_OPTION"); + *arg++ = opt ? opt : "-p"; *arg++ = port; } *arg++ = host; -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html