Skip to contentSkip to conversation

prepare_shell_cmd: add code comment

PATCH In review Alexandr Miloslavskiy via GitGitGadget 2 participants 2 messages Mar 6, 2020 – Mar 26, 2020

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 prepare_shell_cmd: add code comment

From: Alexandr Miloslavskiy <[email protected]>

While debugging something else, I was quite puzzled to see that prepare_shell_cmd() duplicates the command before sending to sh, like:

    sh -c "git-upload-pack '../testrepo/.git'" "git-upload-pack '../testrepo/.git'"

A Windows programmer myself, initially I thought that it's a bug.

Add a clarifying comment.

---
prepare_shell_cmd: add code comment

While debugging something else, I was quite puzzled to see that prepare_shell_cmd() duplicates the command before sending to sh, like:
sh -c "git-upload-pack '../testrepo/.git'" "git-upload-pack '../testrepo/.git'"

A Windows programmer myself, initially I thought that it's a bug.

Add a clarifying comment.

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-574%2FSyntevoAlex%2F%230259(git)_doubled_prepare_shell_cmd-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-574/SyntevoAlex/#0259(git)_doubled_prepare_shell_cmd-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/574

 run-command.c | 6 ++++++
 1 file changed, 6 insertions(+)
run-command.c +6 -0
index f5e1149f9b3..95ab3c168bc 100644
@@ -284,6 +284,12 @@ static const char **prepare_shell_cmd(struct argv_array *out, const char **argv)
 			argv_array_push(out, argv[0]);
 		else
 			argv_array_pushf(out, "%s \"$@\"", argv[0]);
+
+		/*
+		 * -c expects shell_name after command_string.
+		 * Pushing entire original argv below will pass argv[0]
+		 * as shell name.
+		 */
 	}
 
 	argv_array_pushv(out, argv);

base-commit: 076cbdcd739aeb33c1be87b73aebae5e43d7bcc5

Signature · 1 line
gitgitgadget