Merge branch 'jh/partial-clone'
authorJunio C Hamano <gitster@pobox.com>
Thu, 29 Mar 2018 22:39:59 +0000 (15:39 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 29 Mar 2018 22:39:59 +0000 (15:39 -0700)
Hotfix.

* jh/partial-clone:
  upload-pack: disable object filtering when disabled by config
  unpack-trees: release oid_array after use in check_updates()

Documentation/config.txt
unpack-trees.c
upload-pack.c

index ce9102c..4e0cff8 100644 (file)
@@ -3364,7 +3364,7 @@ uploadpack.packObjectsHook::
        stdout.
 
 uploadpack.allowFilter::
-       If this option is set, `upload-pack` will advertise partial
+       If this option is set, `upload-pack` will support partial
        clone and partial fetch object filtering.
 +
 Note that this configuration variable is ignored if it is seen in the
index d568589..e737450 100644 (file)
@@ -391,6 +391,7 @@ static int check_updates(struct unpack_trees_options *o)
                        fetch_objects(repository_format_partial_clone,
                                      &to_fetch);
                fetch_if_missing = fetch_if_missing_store;
+               oid_array_clear(&to_fetch);
        }
        for (i = 0; i < index->cache_nr; i++) {
                struct cache_entry *ce = index->cache[i];
index f51b6cf..4a82602 100644 (file)
@@ -69,7 +69,7 @@ static int stateless_rpc;
 static const char *pack_objects_hook;
 
 static int filter_capability_requested;
-static int filter_advertise;
+static int allow_filter;
 static struct list_objects_filter_options filter_options;
 
 static void reset_timeout(void)
@@ -846,7 +846,7 @@ static void receive_needs(void)
                        no_progress = 1;
                if (parse_feature_request(features, "include-tag"))
                        use_include_tag = 1;
-               if (parse_feature_request(features, "filter"))
+               if (allow_filter && parse_feature_request(features, "filter"))
                        filter_capability_requested = 1;
 
                o = parse_object(&oid_buf);
@@ -976,7 +976,7 @@ static int send_ref(const char *refname, const struct object_id *oid,
                                     " allow-reachable-sha1-in-want" : "",
                             stateless_rpc ? " no-done" : "",
                             symref_info.buf,
-                            filter_advertise ? " filter" : "",
+                            allow_filter ? " filter" : "",
                             git_user_agent_sanitized());
                strbuf_release(&symref_info);
        } else {
@@ -1056,7 +1056,7 @@ static int upload_pack_config(const char *var, const char *value, void *unused)
                if (!strcmp("uploadpack.packobjectshook", var))
                        return git_config_string(&pack_objects_hook, var, value);
        } else if (!strcmp("uploadpack.allowfilter", var)) {
-               filter_advertise = git_config_bool(var, value);
+               allow_filter = git_config_bool(var, value);
        }
        return parse_hide_refs_config(var, value, "uploadpack");
 }