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