Merge branch 'me/fetch-into-shallow-safety' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 15 Jul 2015 18:41:20 +0000 (11:41 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Jul 2015 18:41:20 +0000 (11:41 -0700)
"git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
a shallow transfer request even to an upload-pack that does not
support the capability.

* me/fetch-into-shallow-safety:
  fetch-pack: check for shallow if depth given

fetch-pack.c

index 48526aa..849a9d6 100644 (file)
@@ -790,7 +790,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
        sort_ref_list(&ref, ref_compare_name);
        qsort(sought, nr_sought, sizeof(*sought), cmp_ref_by_name);
 
-       if (is_repository_shallow() && !server_supports("shallow"))
+       if ((args->depth > 0 || is_repository_shallow()) && !server_supports("shallow"))
                die("Server does not support shallow clients");
        if (server_supports("multi_ack_detailed")) {
                if (args->verbose)