X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=transport-helper.c;h=6b05a88faf59ee74840b0f9fa340a5d9397a0f5d;hb=fa364ad790ae0a778ba14b5e5fc9fe910ab4b67e;hp=c7e17ec9cb61e6782bc255e6b90381054255c269;hpb=5ca0db3fcaa46cdaa06268727a10abc438cc4af3;p=thirdparty%2Fgit.git diff --git a/transport-helper.c b/transport-helper.c index c7e17ec9cb..6b05a88faf 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -853,6 +853,7 @@ static int push_refs_with_push(struct transport *transport, { int force_all = flags & TRANSPORT_PUSH_FORCE; int mirror = flags & TRANSPORT_PUSH_MIRROR; + int atomic = flags & TRANSPORT_PUSH_ATOMIC; struct helper_data *data = transport->data; struct strbuf buf = STRBUF_INIT; struct ref *ref; @@ -872,6 +873,11 @@ static int push_refs_with_push(struct transport *transport, case REF_STATUS_REJECT_NONFASTFORWARD: case REF_STATUS_REJECT_STALE: case REF_STATUS_REJECT_ALREADY_EXISTS: + if (atomic) { + string_list_clear(&cas_options, 0); + return 0; + } else + continue; case REF_STATUS_UPTODATE: continue; default: