X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=transport-helper.c;h=6b05a88faf59ee74840b0f9fa340a5d9397a0f5d;hb=86ad3ea5cff8fa09180408e610b269390c1f4848;hp=c7e17ec9cb61e6782bc255e6b90381054255c269;hpb=dae29547c9f0a4895f02d3ba21dc93a7b666e830;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: