summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 763e287)
raw | patch | inline | side by side (parent: 763e287)
author | Martin Sivak <mars@nomi.cz> | |
Wed, 3 Aug 2005 15:15:42 +0000 (17:15 +0200) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Wed, 10 Aug 2005 05:28:20 +0000 (22:28 -0700) |
[jc: I ended up rewriting Martin's patch due to whitespace
breakage, but the credit goes to Martin for doing the initial
patch to identify what needs to be changed.]
Signed-off-by: Martin Sivak <mars@nomi.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
breakage, but the credit goes to Martin for doing the initial
patch to identify what needs to be changed.]
Signed-off-by: Martin Sivak <mars@nomi.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
connect.c | patch | blob | history | |
rsh.c | patch | blob | history |
diff --git a/connect.c b/connect.c
index 8f4d99aef25d66c6c8f0196055dd7df8ecd6ef2d..a6657b13848b5474ffde7edb0ad60ed969f22852 100644 (file)
--- a/connect.c
+++ b/connect.c
close(pipefd[0][1]);
close(pipefd[1][0]);
close(pipefd[1][1]);
- if (protocol == PROTO_SSH)
- execlp("ssh", "ssh", host, command, NULL);
+ if (protocol == PROTO_SSH) {
+ const char *ssh = getenv("GIT_SSH") ? : "ssh";
+ const char *ssh_basename = strrchr(ssh, '/');
+ if (!ssh_basename)
+ ssh_basename = ssh;
+ else
+ ssh_basename++;
+ execlp(ssh, ssh_basename, host, command, NULL);
+ }
else
execlp("sh", "sh", "-c", command, NULL);
die("exec failed");
index fe87e581d21d0465da9e3fadef0454c69640caa7..bcb1c80d84b77e04bf843c2b38592284760ae165 100644 (file)
--- a/rsh.c
+++ b/rsh.c
return error("Couldn't create socket");
}
if (!fork()) {
+ const char *ssh = getenv("GIT_SSH") ? : "ssh";
+ const char *ssh_basename = strrchr(ssh, '/');
+ if (!ssh_basename)
+ ssh_basename = ssh;
+ else
+ ssh_basename++;
close(sv[1]);
dup2(sv[0], 0);
dup2(sv[0], 1);
- execlp("ssh", "ssh", host, command, NULL);
+ execlp(ssh, ssh_basename, host, command, NULL);
}
close(sv[0]);
*fd_in = sv[1];