fsck: verify commit graph when implicitly enabled
Change fsck to check the "core_commit_graph" variable set in
"repo-settings.c" instead of reading the "core.commitGraph" variable.
This fixes a bug where we wouldn't verify the commit-graph if the
config key was missing. This bug was introduced in
31b1de6a09
(commit-graph: turn on commit-graph by default, 2019-08-13),
where core.commitGraph was turned on by default.
Add tests to "t5318-commit-graph.sh" to verify that fsck checks the
commit-graph as expected for the 3 values of core.commitGraph. Also,
disable GIT_TEST_COMMIT_GRAPH in t/t0410-partial-clone.sh because some
test cases use fsck in ways that assume that commit-graph checking is
disabled.
Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
ed41385ad6
commit
f30e4d854b
@ -803,6 +803,7 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
|
||||
fsck_enable_object_names(&fsck_walk_options);
|
||||
|
||||
git_config(git_fsck_config, &fsck_obj_options);
|
||||
prepare_repo_settings(the_repository);
|
||||
|
||||
if (connectivity_only) {
|
||||
for_each_loose_object(mark_loose_for_connectivity, NULL, 0);
|
||||
@ -908,7 +909,7 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
|
||||
|
||||
check_connectivity();
|
||||
|
||||
if (!git_config_get_bool("core.commitgraph", &i) && i) {
|
||||
if (the_repository->settings.core_commit_graph) {
|
||||
struct child_process commit_graph_verify = CHILD_PROCESS_INIT;
|
||||
const char *verify_argv[] = { "commit-graph", "verify", NULL, NULL, NULL };
|
||||
|
||||
|
Reference in New Issue
Block a user