Stefan Beller <[email protected]> writes:

> diff --git a/send-pack.c b/send-pack.c
> index 949cb61..2a513f4 100644
> --- a/send-pack.c
> +++ b/send-pack.c
> @@ -294,6 +294,8 @@ int send_pack(struct send_pack_args *args,
>       int use_sideband = 0;
>       int quiet_supported = 0;
>       int agent_supported = 0;
> +     int use_atomic;
> +     int atomic_supported = 0;
>       unsigned cmds_sent = 0;
>       int ret;
>       struct async demux;
> @@ -314,6 +316,8 @@ int send_pack(struct send_pack_args *args,
>               agent_supported = 1;
>       if (server_supports("no-thin"))
>               args->use_thin_pack = 0;
> +     if (server_supports("atomic"))
> +             atomic_supported = 1;
>       if (args->push_cert) {
>               int len;
>  
> @@ -328,6 +332,11 @@ int send_pack(struct send_pack_args *args,
>                       "Perhaps you should specify a branch such as 
> 'master'.\n");
>               return 0;
>       }
> +     if (args->atomic && !atomic_supported) {
> +             fprintf(stderr, "Server does not support atomic push.");
> +             return -1;

I'd tweak this to

        return error("server does not support atomic push.");

to (0) shorten, (1) make sure the message is terminated with LF,
and (2) match the other error messages in the program.

Other than that looks good.

Thanks.

> +     }
> +     use_atomic = atomic_supported && args->atomic;
>  
>       if (status_report)
>               strbuf_addstr(&cap_buf, " report-status");
> @@ -335,6 +344,8 @@ int send_pack(struct send_pack_args *args,
>               strbuf_addstr(&cap_buf, " side-band-64k");
>       if (quiet_supported && (args->quiet || !args->progress))
>               strbuf_addstr(&cap_buf, " quiet");
> +     if (use_atomic)
> +             strbuf_addstr(&cap_buf, " atomic");
>       if (agent_supported)
>               strbuf_addf(&cap_buf, " agent=%s", git_user_agent_sanitized());
>  
> diff --git a/send-pack.h b/send-pack.h
> index 5635457..b664648 100644
> --- a/send-pack.h
> +++ b/send-pack.h
> @@ -13,7 +13,8 @@ struct send_pack_args {
>               use_ofs_delta:1,
>               dry_run:1,
>               push_cert:1,
> -             stateless_rpc:1;
> +             stateless_rpc:1,
> +             atomic:1;
>  };
>  
>  int send_pack(struct send_pack_args *args,
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to