зеркало из https://github.com/microsoft/git.git
send-pack: detect when the server doesn't support our hash
Detect when the server doesn't support our hash algorithm and abort. If the server does support our hash, advertise it as part of our capabilities. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
122037c2ed
Коммит
82db03abbb
|
@ -362,6 +362,7 @@ int send_pack(struct send_pack_args *args,
|
|||
int atomic_supported = 0;
|
||||
int use_push_options = 0;
|
||||
int push_options_supported = 0;
|
||||
int object_format_supported = 0;
|
||||
unsigned cmds_sent = 0;
|
||||
int ret;
|
||||
struct async demux;
|
||||
|
@ -388,6 +389,9 @@ int send_pack(struct send_pack_args *args,
|
|||
if (server_supports("push-options"))
|
||||
push_options_supported = 1;
|
||||
|
||||
if (!server_supports_hash(the_hash_algo->name, &object_format_supported))
|
||||
die(_("the receiving end does not support this repository's hash algorithm"));
|
||||
|
||||
if (args->push_cert != SEND_PACK_PUSH_CERT_NEVER) {
|
||||
int len;
|
||||
push_cert_nonce = server_feature_value("push-cert", &len);
|
||||
|
@ -428,6 +432,8 @@ int send_pack(struct send_pack_args *args,
|
|||
strbuf_addstr(&cap_buf, " atomic");
|
||||
if (use_push_options)
|
||||
strbuf_addstr(&cap_buf, " push-options");
|
||||
if (object_format_supported)
|
||||
strbuf_addf(&cap_buf, " object-format=%s", the_hash_algo->name);
|
||||
if (agent_supported)
|
||||
strbuf_addf(&cap_buf, " agent=%s", git_user_agent_sanitized());
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче