commit-graph.c: store maximum changed paths
For now, we assume that there is a fixed constant describing the maximum number of changed paths we are willing to store in a Bloom filter. Prepare for that to (at least partially) not be the case by making it a member of the 'struct bloom_filter_settings'. This will be helpful in the subsequent patches by reducing the size of test cases that exercise storing too many changed paths, as well as preparing for an eventual future in which this value might change. This patch alone does not cause newly generated Bloom filters to use a custom upper-bound on the maximum number of changed paths a single Bloom filter can hold, that will occur in a later patch. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
b66d84756f
commit
97ffa4fab5
@ -417,6 +417,7 @@ struct commit_graph *parse_commit_graph(struct repository *r,
|
||||
graph->bloom_filter_settings->hash_version = hash_version;
|
||||
graph->bloom_filter_settings->num_hashes = get_be32(data + chunk_offset + 4);
|
||||
graph->bloom_filter_settings->bits_per_entry = get_be32(data + chunk_offset + 8);
|
||||
graph->bloom_filter_settings->max_changed_paths = DEFAULT_BLOOM_MAX_CHANGES;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1194,6 +1195,7 @@ static void trace2_bloom_filter_settings(struct write_commit_graph_context *ctx)
|
||||
jw_object_intmax(&jw, "hash_version", ctx->bloom_settings->hash_version);
|
||||
jw_object_intmax(&jw, "num_hashes", ctx->bloom_settings->num_hashes);
|
||||
jw_object_intmax(&jw, "bits_per_entry", ctx->bloom_settings->bits_per_entry);
|
||||
jw_object_intmax(&jw, "max_changed_paths", ctx->bloom_settings->max_changed_paths);
|
||||
jw_end(&jw);
|
||||
|
||||
trace2_data_json("bloom", ctx->r, "settings", &jw);
|
||||
@ -1662,6 +1664,8 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
|
||||
bloom_settings.bits_per_entry);
|
||||
bloom_settings.num_hashes = git_env_ulong("GIT_TEST_BLOOM_SETTINGS_NUM_HASHES",
|
||||
bloom_settings.num_hashes);
|
||||
bloom_settings.max_changed_paths = git_env_ulong("GIT_TEST_BLOOM_SETTINGS_MAX_CHANGED_PATHS",
|
||||
bloom_settings.max_changed_paths);
|
||||
ctx->bloom_settings = &bloom_settings;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user