diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-04-29 01:50:04 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-04-29 01:50:04 +0300 |
commit | 5b6864ca445e606bdd6dae607d3ee5f410da66fa (patch) | |
tree | 678130275ab282b480468163def1419fa42eb76b /transport.c | |
parent | 8f5dc5a4af3fa32bf9261b76b0f1146fd15b8643 (diff) | |
parent | dfe1b7f19c04fd10e9bafce91bc1da0c18bbb194 (diff) |
Merge branch 'jx/atomic-push'
"git push --atomic" used to show failures for refs that weren't
even pushed, which has been corrected.
* jx/atomic-push:
transport-helper: new method reject_atomic_push()
transport-helper: mark failure for atomic push
send-pack: mark failure of atomic push properly
t5543: never report what we do not push
send-pack: fix inconsistent porcelain output
Diffstat (limited to 'transport.c')
-rw-r--r-- | transport.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/transport.c b/transport.c index 471c5bd339..15f5ba4e8f 100644 --- a/transport.c +++ b/transport.c @@ -715,7 +715,15 @@ static int git_transport_push(struct transport *transport, struct ref *remote_re close(data->fd[1]); close(data->fd[0]); - ret |= finish_connect(data->conn); + /* + * Atomic push may abort the connection early and close the pipe, + * which may cause an error for `finish_connect()`. Ignore this error + * for atomic git-push. + */ + if (ret || args.atomic) + finish_connect(data->conn); + else + ret = finish_connect(data->conn); data->conn = NULL; data->got_remote_heads = 0; @@ -1240,20 +1248,6 @@ int transport_push(struct repository *r, err = push_had_errors(remote_refs); ret = push_ret | err; - if ((flags & TRANSPORT_PUSH_ATOMIC) && err) { - struct ref *it; - for (it = remote_refs; it; it = it->next) - switch (it->status) { - case REF_STATUS_NONE: - case REF_STATUS_UPTODATE: - case REF_STATUS_OK: - it->status = REF_STATUS_ATOMIC_PUSH_FAILED; - break; - default: - break; - } - } - if (!quiet || err) transport_print_push_status(transport->url, remote_refs, verbose | porcelain, porcelain, |