
A subsequent commit will introduce another version of the changed-path filter in the commit graph file. In order to control which version to write (and read), a config variable is needed. Therefore, introduce this config variable. For forwards compatibility, teach Git to not read commit graphs when the config variable is set to an unsupported version. Because we teach Git this, commitgraph.readChangedPaths is now redundant, so deprecate it and define its behavior in terms of the config variable we introduce. This commit does not change the behavior of writing (Git writes changed path filters when explicitly instructed regardless of any config variable), but a subsequent commit will restrict Git such that it will only write when commitgraph.changedPathsVersion is a recognized value. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
29 lines
868 B
C
29 lines
868 B
C
#include "git-compat-util.h"
|
|
#include "commit-graph.h"
|
|
#include "repository.h"
|
|
|
|
struct commit_graph *parse_commit_graph(struct repo_settings *s,
|
|
void *graph_map, size_t graph_size);
|
|
|
|
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
|
|
|
|
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|
{
|
|
struct commit_graph *g;
|
|
|
|
initialize_the_repository();
|
|
/*
|
|
* Initialize the_repository with commit-graph settings that would
|
|
* normally be read from the repository's gitdir. We want to avoid
|
|
* touching the disk to keep the individual fuzz-test cases as fast as
|
|
* possible.
|
|
*/
|
|
the_repository->settings.commit_graph_generation_version = 2;
|
|
the_repository->settings.commit_graph_changed_paths_version = 1;
|
|
g = parse_commit_graph(&the_repository->settings, (void *)data, size);
|
|
repo_clear(the_repository);
|
|
free_commit_graph(g);
|
|
|
|
return 0;
|
|
}
|