summaryrefslogtreecommitdiff
path: root/transport.c
diff options
context:
space:
mode:
authorJohannes Sixt <j6t@kdbg.org>2009-07-04 21:26:42 +0200
committerJunio C Hamano <gitster@pobox.com>2009-07-06 02:45:50 -0700
commitc024beb56da679839d61f352d088b9a86823233a (patch)
treece67d37c56575311d409d9b3090dd526d3178e9b /transport.c
parentb99d5f40d6a5cba7d7cd7599063b3cd78aa4d219 (diff)
downloadgit-c024beb56da679839d61f352d088b9a86823233a.tar.gz
run_command: report failure to execute the program, but optionally don't
In the case where a program was not found, it was still the task of the caller to report an error to the user. Usually, this is an interesting case but only few callers actually reported a specific error (though many call sites report a generic error message regardless of the cause). With this change the error is reported by run_command, but since there is one call site in git.c that does not want that, an option is added to struct child_process, which is used to turn the error off. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'transport.c')
-rw-r--r--transport.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/transport.c b/transport.c
index 0885801a06..802ce7f233 100644
--- a/transport.c
+++ b/transport.c
@@ -396,7 +396,6 @@ static int curl_transport_push(struct transport *transport, int refspec_nr, cons
{
const char **argv;
int argc;
- int err;
if (flags & TRANSPORT_PUSH_MIRROR)
return error("http transport does not support mirror mode");
@@ -416,10 +415,7 @@ static int curl_transport_push(struct transport *transport, int refspec_nr, cons
while (refspec_nr--)
argv[argc++] = *refspec++;
argv[argc] = NULL;
- err = run_command_v_opt(argv, RUN_GIT_CMD);
- if (err < 0 && errno == ENOENT)
- error("unable to exec %s", argv[0]);
- return !!err;
+ return !!run_command_v_opt(argv, RUN_GIT_CMD);
}
static struct ref *get_refs_via_curl(struct transport *transport, int for_push)