[updated patch v3 2/2] Improve transport helper exec failure reporting
From: Ilari Liusvaara <hidden>
Date: 2016-06-15 22:47:57
Subsystem:
the rest · Maintainer:
Linus Torvalds
Previously transport-helper exec failure error reporting was pretty much useless as it didn't report errors from execve, only from pipe and fork. Now that run-command passes errno from exec, use the improved support to actually print useful errors if execution fails. Signed-off-by: Ilari Liusvaara <redacted> --- transport-helper.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/transport-helper.c b/transport-helper.c
index 5078c71..73da339 100644
--- a/transport-helper.c
+++ b/transport-helper.c@@ -31,13 +31,19 @@ static struct child_process *get_helper(struct transport *transport) helper->out = -1; helper->err = 0; helper->argv = xcalloc(4, sizeof(*helper->argv)); - strbuf_addf(&buf, "remote-%s", data->name); + strbuf_addf(&buf, "git-remote-%s", data->name); helper->argv[0] = strbuf_detach(&buf, NULL); helper->argv[1] = transport->remote->name; helper->argv[2] = transport->url; - helper->git_cmd = 1; - if (start_command(helper)) - die("Unable to run helper: git %s", helper->argv[0]); + helper->git_cmd = 0; + helper->silent_exec_failure = 1; + if (start_command(helper)) { + if (errno == ENOENT) + die("Unable to find remote helper for \"%s\"", + data->name); + else + die_errno("Unable to run helper %s", helper->argv[0]); + } data->helper = helper; write_str_in_full(helper->in, "capabilities\n");
--
1.6.6.3.gaa2e1