Johannes Schindelin [off-list ref] writes:
quoted hunk
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;
If you only care only about the ones we currently want to support, I do
not htink it makes any difference either way, but if we are shooting for
having a minimum-but-reasonable framework to make it easy to support other
ones that we haven't seen, it feels very much like an inadequate hack to
waste an envirnoment variable for such a narrow special case. With this,
what you really mean is "Plink uses -P instead of -p", right?
I do not know if "plink" is used widely enough to be special cased, but if
so, I think we would better have an explicit support for it. Will we add
GIT_SSH_FORBID_X11_FORWARDING_OPTION environment variable and friends,
too?
The extra environment would not help dealing with an implementation that
wants --port=90222 (i.e. not as two separate arguments but a single one),
for example. You would need the extra wrapper support for that kind of
thing anyway. That extra environment _solution_ will need to make an
assuption that any reasonable implementation would have an option string
to specify port which may not be "-p" and that is to be followed by a
separate argument that is a decimal port number, which probably is
reasonable for this particular "port" thing, but as a general design
principle I do not think it is a good direction to go.
Hi,
On Sun, 20 Jul 2008, Junio C Hamano wrote:
Johannes Schindelin [off-list ref] writes:
quoted
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;
If you only care only about the ones we currently want to support, I do
not htink it makes any difference either way, but if we are shooting for
having a minimum-but-reasonable framework to make it easy to support other
ones that we haven't seen, it feels very much like an inadequate hack to
waste an envirnoment variable for such a narrow special case. With this,
what you really mean is "Plink uses -P instead of -p", right?
Yeah. My first attempt was to allow "GIT_SSH='plink.exe -P %p %h'" to
work, and for that matter, "git config --global transport.ssh 'plink.exe
-P %p %h'", but I decided that it would be easier to do the patch I
posted.
Anyway, I think that this issue wasted enough of my time, as I will never
use plink anyway. As long as the patch does not have an adverse effect on
my use case, which happens to be the default case, I will just not bother
anymore, even if I think that GIT_SSH=wrapper would be better than special
case rarely exercized ssh programs in the source code.
Ciao,
Dscho
On Jul 20, 2008, at 9:51 PM, Junio C Hamano wrote:
I do not know if "plink" is used widely enough to be special cased,
but if
so, I think we would better have an explicit support for it.
Our installer on Windows explicitly supports plink as an alternative to
OpenSSH. Putty has a GUI for managing your ssh keys (Pageant). You
need
to type your password only once to unlock a key and make it available to
all connections that you start afterwards.
I think it should be special cased. I use plink myself.
Steffen