X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=transport.c;h=453de8f7041b966a9bd0eaee20ef8f5758cec2f1;hb=4d8ec15c66f32e29e4dfcdf64d0826c425d8ad7d;hp=f1fcd2c4b006dc2ece2019ac91f73a2f42bbf6bd;hpb=82dca958dd8c3eba22653c605710c3ef6514958f;p=thirdparty%2Fgit.git diff --git a/transport.c b/transport.c index f1fcd2c4b0..453de8f704 100644 --- a/transport.c +++ b/transport.c @@ -1226,6 +1226,20 @@ 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,