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 ce9102cea83766be0ae8d2ed2867fd4c587d7a95..4e0cff87f62f5d5c320e3dcea03f646416604bca 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 d5685891a560d2f1a06c937043ceda2c8b9fd9db..e73745051e505934b44be216b1d80a6c053c96de 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 f51b6cfca9435d6b3b3f5b44b593a7c5cd2b1d3e..4a82602be5d0ab111a805a2f2456f382ae7a7364 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");
 }