From: Johannes Schindelin Date: Thu, 03 Jul 2008 11:10:14 GMT Subject: Re: [PATCH 06/12] connect: Fix custom ports with plink (Putty's ssh) Message-ID: In-Reply-To: <200807022104.20146.johannes.sixt@telecom.at> Hi, On Wed, 2 Jul 2008, Johannes Sixt wrote: > On Mittwoch, 2. Juli 2008, Steffen Prohaska wrote: > > From: Edward Z. Yang > > > > PuTTY requires -P while OpenSSH requires -p; if plink is detected > > as GIT_SSH, use the alternate flag. > > > > Signed-off-by: Edward Z. Yang > > Signed-off-by: Steffen Prohaska > > --- > > connect.c | 4 +++- > > 1 files changed, 3 insertions(+), 1 deletions(-) > > > > diff --git a/connect.c b/connect.c > > index 574f42f..0d007f3 100644 > > --- a/connect.c > > +++ b/connect.c > > @@ -599,11 +599,13 @@ struct child_process *git_connect(int fd[2], const > > char *url_orig, conn->argv = arg = xcalloc(6, sizeof(*arg)); > > if (protocol == PROTO_SSH) { > > const char *ssh = getenv("GIT_SSH"); > > + int putty = ssh && strstr(ssh, "plink"); > > if (!ssh) ssh = "ssh"; > > > > *arg++ = ssh; > > if (port) { > > - *arg++ = "-p"; > > + /* P is for PuTTY, p is for OpenSSH */ > > + *arg++ = putty ? "-P" : "-p"; > > *arg++ = port; > > } > > *arg++ = host; > > What about installing a wrapper script, plinkssh, that does this: > > #!/bin/bash > > if test "$1" = -p; then > port="-P $2" > shift; shift > fi > > exec plink $port "$@" > > and require plink users to set GIT_SSH=plinkssh? I like that better than this special-casing of plink. Ciao, Dscho