1
0
mirror of https://github.com/git/git synced 2024-07-05 00:58:49 +00:00

git-push to multiple locations does not stop at the first failure

When pushing into multiple repositories with git push, via
multiple URL in .git/remotes/$shorthand or multiple url
variables in [remote "$shorthand"] section, we used to stop upon
the first failure.  Continue the operation and report the
failure at the end.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2007-04-06 23:04:53 -07:00
parent 39878b0cb7
commit fd1d1b05e9

View File

@ -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;
@ -343,19 +344,19 @@ static int do_push(const char *repo)
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)