git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 07/11] connect.c: Support PuTTY plink and TortoisePlink as SSH on Windows

From
Steffen Prohaska <prohaska@zib.de>
Date
May 31, 2009, 16:15 UTC
Message-ID
<1243786525-4493-8-git-send-email-prohaska@zib.de>
In-Reply-To
<1243786525-4493-7-git-send-email-prohaska@zib.de>
From: Edward Z. Yang <edwardzyang@thewritingpot.com>

OpenSSH uses -p to specify custom ports, while PuTTY plink and TortoisePlink use -P. Git now detects if plink is in GIT_SSH and modify its flags as necessary.

We call plink with -batch, so that it will error out with an error message instead of waiting for user input. As reported in msysGit issue 96, plink wants to interact with the user asking if a host key should be accepted, but this just blocks the terminal, since plink tries to get the answer from stdin. However, stdin is already connected to Git that wants to send input to the remote command.

But we do not pass -batch to TortoisePlink, because TortoisePlink uses a GUI to communicate with the user, and it does not understand -batch.

Signed-off-by: Edward Z. Yang <edwardzyang@thewritingpot.com>
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 connect.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/connect.c b/connect.c
index f6b8ba6..692d476 100644
--- a/connect.c
+++ b/connect.c
@@ -602,14 +602,18 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
 		die("command line too long");
 
 	conn->in = conn->out = -1;
-	conn->argv = arg = xcalloc(6, sizeof(*arg));
+	conn->argv = arg = xcalloc(7, sizeof(*arg));
 	if (protocol == PROTO_SSH) {
 		const char *ssh = getenv("GIT_SSH");
+		int putty = ssh && strcasestr(ssh, "plink");
 		if (!ssh) ssh = "ssh";
 
 		*arg++ = ssh;
+		if (putty && !strcasestr(ssh, "tortoiseplink"))
+			*arg++ = "-batch";
 		if (port) {
-			*arg++ = "-p";
+			/* P is for PuTTY, p is for OpenSSH */
+			*arg++ = putty ? "-P" : "-p";
 			*arg++ = port;
 		}
 		*arg++ = host;
-- 
1.6.3.1.54.g99dd
Previous: Steffen ProhaskaNext: Steffen Prohaska
Message 8 of 37 in “Various msysgit patches”
  1. 00/11 Various msysgit patchesSteffen Prohaska, May 31, 2009
  2. 01/11 MinGW: GCC >= 4 does not need SNPRINTF_SIZE_CORR anymoreSteffen Prohaska, May 31, 2009
  3. 02/11 Quiet make: do not leave Windows behindSteffen Prohaska, May 31, 2009
  4. 03/11 Work around a regression in Windows 7, causing erase_in_line() to crash sometimesSteffen Prohaska, May 31, 2009
  5. 04/11 test-chmtime: work around Windows limitationSteffen Prohaska, May 31, 2009
  6. 05/11 winansi: fix compile warningsSteffen Prohaska, May 31, 2009
  7. 06/11 git: browsing paths with spaces when using the start commandSteffen Prohaska, May 31, 2009
  8. 07/11 connect.c: Support PuTTY plink and TortoisePlink as SSH on WindowsSteffen Prohaska, May 31, 2009
  9. 08/11 MinGW readdir reimplementation to support d_typeSteffen Prohaska, May 31, 2009
  10. Johannes SixtMay 31, 2009
  11. Johannes SixtMay 31, 2009
  12. 05/11 MinGW: fix warning about implicit declaration of _getch()Steffen Prohaska, Jun 1, 2009
  13. 03/11 Work around a regression in Windows 7, causing erase_in_line() to crash sometimesSteffen Prohaska, Jun 1, 2009
  14. Johannes SchindelinJun 1, 2009
  15. Steffen ProhaskaJun 1, 2009
  16. Johannes SchindelinJun 1, 2009
  17. Junio C HamanoJun 1, 2009
  18. Johannes SchindelinJun 1, 2009
  19. Johannes SixtMay 31, 2009
  20. 10/11 Fix warnings in nedmalloc when compiling with GCC 4.4.0Steffen Prohaska, May 31, 2009
  21. 11/11 MinGW: Teach Makefile to detect msysgit and apply specific settingsSteffen Prohaska, May 31, 2009
  22. Junio C HamanoJun 1, 2009
  23. Johannes SchindelinJun 1, 2009
  24. Junio C HamanoJun 1, 2009
  25. GeunSik LimJun 1, 2009
  26. Johannes SchindelinJun 2, 2009
  27. Junio C HamanoJun 2, 2009
  28. Johannes SchindelinJun 3, 2009
  29. Junio C HamanoJun 3, 2009
  30. 10/11 Fix warnings in nedmalloc when compiling with GCC 4.4.0Johannes Schindelin, Jun 8, 2009
  31. Junio C HamanoJun 8, 2009
  32. Johannes SixtJun 8, 2009
  33. Steffen ProhaskaJun 9, 2009
  34. Johannes SixtJun 10, 2009
  35. Fix typo in nedmalloc warning fixJohannes Sixt, Jun 11, 2009
  36. compat/ has subdirectories: do not omit them in 'make clean'Johannes Sixt, Jun 11, 2009
  37. Johannes SchindelinJun 11, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.