diff options
Diffstat (limited to 'transport.c')
| -rw-r--r-- | transport.c | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/transport.c b/transport.c index 90453df9c6..91c466742e 100644 --- a/transport.c +++ b/transport.c @@ -456,6 +456,7 @@ struct git_transport_data {  	int fd[2];  	unsigned got_remote_heads : 1;  	struct sha1_array extra_have; +	struct sha1_array shallow;  };  static int set_git_option(struct git_transport_options *opts, @@ -512,7 +513,9 @@ static struct ref *get_refs_via_connect(struct transport *transport, int for_pus  	connect_setup(transport, for_push, 0);  	get_remote_heads(data->fd[0], NULL, 0, &refs, -			 for_push ? REF_NORMAL : 0, &data->extra_have, NULL); +			 for_push ? REF_NORMAL : 0, +			 &data->extra_have, +			 transport->cloning ? &data->shallow : NULL);  	data->got_remote_heads = 1;  	return refs; @@ -539,17 +542,19 @@ static int fetch_refs_via_pack(struct transport *transport,  	args.depth = data->options.depth;  	args.check_self_contained_and_connected =  		data->options.check_self_contained_and_connected; +	args.cloning = transport->cloning;  	if (!data->got_remote_heads) {  		connect_setup(transport, 0, 0);  		get_remote_heads(data->fd[0], NULL, 0, &refs_tmp, 0, -				 NULL, NULL); +				 NULL, +				 transport->cloning ? &data->shallow : NULL);  		data->got_remote_heads = 1;  	}  	refs = fetch_pack(&args, data->fd, data->conn,  			  refs_tmp ? refs_tmp : transport->remote_refs, -			  dest, to_fetch, nr_heads, +			  dest, to_fetch, nr_heads, &data->shallow,  			  &transport->pack_lockfile);  	close(data->fd[0]);  	close(data->fd[1]);  | 
