diff options
author | Junio C Hamano <junkio@cox.net> | 2007-04-09 10:54:47 +0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-04-09 10:54:47 +0400 |
commit | 5bcbc7ff1014c58e7296713926206bf6a69e0f4c (patch) | |
tree | aa3c3d18f01fe2fc5c525691ba90700a2f403c11 | |
parent | 58fe516bb51f09f372e7442933161c10b7ccddd8 (diff) | |
parent | fd1d1b05e937ff3164be38b111e5d76d592ee548 (diff) |
Merge branch 'jc/push'
* jc/push:
git-push to multiple locations does not stop at the first failure
git-push reports the URL after failing.
-rw-r--r-- | builtin-push.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/builtin-push.c b/builtin-push.c index 70b1168fa6..cb78401c94 100644 --- a/builtin-push.c +++ b/builtin-push.c @@ -297,7 +297,7 @@ static int read_config(const char *repo, const char *uri[MAX_URI]) static int do_push(const char *repo) { const char *uri[MAX_URI]; - int i, n; + int i, n, errs; int common_argc; const char **argv; int argc; @@ -317,6 +317,7 @@ static int do_push(const char *repo) argv[argc++] = receivepack; common_argc = argc; + errs = 0; for (i = 0; i < n; i++) { int err; int dest_argc = common_argc; @@ -339,21 +340,23 @@ static int do_push(const char *repo) err = run_command_v_opt(argv, RUN_GIT_CMD); if (!err) continue; + + error("failed to push to '%s'", uri[i]); switch (err) { case -ERR_RUN_COMMAND_FORK: - die("unable to fork for %s", sender); + error("unable to fork for %s", sender); case -ERR_RUN_COMMAND_EXEC: - die("unable to exec %s", sender); + error("unable to exec %s", sender); + break; case -ERR_RUN_COMMAND_WAITPID: case -ERR_RUN_COMMAND_WAITPID_WRONG_PID: case -ERR_RUN_COMMAND_WAITPID_SIGNAL: case -ERR_RUN_COMMAND_WAITPID_NOEXIT: - die("%s died with strange error", sender); - default: - return -err; + error("%s died with strange error", sender); } + errs++; } - return 0; + return !!errs; } int cmd_push(int argc, const char **argv, const char *prefix) |