Hi,

On Wed, 2 Jul 2008, Johannes Sixt wrote:

> On Mittwoch, 2. Juli 2008, Steffen Prohaska wrote:
> > From: Edward Z. Yang <[EMAIL PROTECTED]>
> >
> > PuTTY requires -P while OpenSSH requires -p; if plink is detected
> > as GIT_SSH, use the alternate flag.
> >
> > Signed-off-by: Edward Z. Yang <[EMAIL PROTECTED]>
> > Signed-off-by: Steffen Prohaska <[EMAIL PROTECTED]>
> > ---
> >  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

Reply via email to