push: respect --no-thin
- From the beginning of push.c in755225d
, 2006-04-29, "thin" option was enabled by default but could be turned off with --no-thin. - Then Shawn changed the default to 0 in favor of saving server resources ina4503a1
, 2007-09-09. --no-thin worked great. - One day later, in9b28851
Daniel extracted some code from push.c to create transport.c. He (probably accidentally) flipped the default value from 0 to 1 in transport_get(). From then on --no-thin is effectively no-op because git-push still expects the default value to be false and only calls transport_set_option() when "thin" variable in push.c is true (which is unnecessary). Correct the code to respect --no-thin by calling transport_set_option() in both cases. receive-pack learns about --reject-thin-pack-for-testing option, which only is for testing purposes, hence no document update. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
96cb27a9d2
commit
f7c815c3ee
@ -38,6 +38,7 @@ static int quiet;
|
||||
static int prefer_ofs_delta = 1;
|
||||
static int auto_update_server_info;
|
||||
static int auto_gc = 1;
|
||||
static int fix_thin = 1;
|
||||
static const char *head_name;
|
||||
static void *head_name_to_free;
|
||||
static int sent_capabilities;
|
||||
@ -869,7 +870,8 @@ static const char *unpack(int err_fd)
|
||||
keeper[i++] = "--stdin";
|
||||
if (fsck_objects)
|
||||
keeper[i++] = "--strict";
|
||||
keeper[i++] = "--fix-thin";
|
||||
if (fix_thin)
|
||||
keeper[i++] = "--fix-thin";
|
||||
keeper[i++] = hdr_arg;
|
||||
keeper[i++] = keep_arg;
|
||||
keeper[i++] = NULL;
|
||||
@ -975,6 +977,10 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix)
|
||||
stateless_rpc = 1;
|
||||
continue;
|
||||
}
|
||||
if (!strcmp(arg, "--reject-thin-pack-for-testing")) {
|
||||
fix_thin = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
usage(receive_pack_usage);
|
||||
}
|
||||
|
Reference in New Issue
Block a user