Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Config option to disable side-band-64k for transport #2375

Merged
merged 1 commit into from
Oct 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,8 @@ include::config/reset.txt[]

include::config/sendemail.txt[]

include::config/sendpack.txt[]

include::config/sequencer.txt[]

include::config/showbranch.txt[]
Expand Down
5 changes: 5 additions & 0 deletions Documentation/config/sendpack.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
sendpack.sideband::
Allows to disable the side-band-64k capability for send-pack even
when it is advertised by the server. Makes it possible to work
around a limitation in the git for windows implementation together
with the dump git protocol. Defaults to true.
14 changes: 13 additions & 1 deletion send-pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,16 @@ int option_parse_push_signed(const struct option *opt,
die("bad %s argument: %s", opt->long_name, arg);
}

static int config_use_sideband = 1;

static int send_pack_config(const char *var, const char *value, void *unused)
{
if (!strcmp("sendpack.sideband", var))
config_use_sideband = git_config_bool(var, value);

return 0;
}

static void feed_object(const struct object_id *oid, FILE *fh, int negative)
{
if (negative && !has_object_file(oid))
Expand Down Expand Up @@ -390,14 +400,16 @@ int send_pack(struct send_pack_args *args,
const char *push_cert_nonce = NULL;
struct packet_reader reader;

git_config(send_pack_config, NULL);

/* Does the other end support the reporting? */
if (server_supports("report-status"))
status_report = 1;
if (server_supports("delete-refs"))
allow_deleting_refs = 1;
if (server_supports("ofs-delta"))
args->use_ofs_delta = 1;
if (server_supports("side-band-64k"))
if (config_use_sideband && server_supports("side-band-64k"))
use_sideband = 1;
if (server_supports("quiet"))
quiet_supported = 1;
Expand Down