mirror of
https://github.com/git/git.git
synced 2024-06-06 19:36:09 +02:00
maintenance: core.commitGraph=false prevents writes
Recently, a user had an issue due to combining fetch.writeCommitGraph=true with core.commitGraph=false. The root bug has been resolved by preventing commit-graph writes when core.commitGraph is disabled. This happens inside the 'git commit-graph write' command, but we can be more aware of this situation and prevent that process from ever starting in the 'commit-graph' maintenance task. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8f801804be
commit
d334107c5d
|
@ -813,6 +813,10 @@ static int run_write_commit_graph(struct maintenance_run_opts *opts)
|
|||
|
||||
static int maintenance_task_commit_graph(struct maintenance_run_opts *opts)
|
||||
{
|
||||
prepare_repo_settings(the_repository);
|
||||
if (!the_repository->settings.core_commit_graph)
|
||||
return 0;
|
||||
|
||||
close_object_store(the_repository->objects);
|
||||
if (run_write_commit_graph(opts)) {
|
||||
error(_("failed to write commit-graph"));
|
||||
|
|
|
@ -52,6 +52,14 @@ test_expect_success 'run --task=<task>' '
|
|||
test_subcommand git commit-graph write --split --reachable --no-progress <run-both.txt
|
||||
'
|
||||
|
||||
test_expect_success 'core.commitGraph=false prevents write process' '
|
||||
GIT_TRACE2_EVENT="$(pwd)/no-commit-graph.txt" \
|
||||
git -c core.commitGraph=false maintenance run \
|
||||
--task=commit-graph 2>/dev/null &&
|
||||
test_subcommand ! git commit-graph write --split --reachable --no-progress \
|
||||
<no-commit-graph.txt
|
||||
'
|
||||
|
||||
test_expect_success 'commit-graph auto condition' '
|
||||
COMMAND="maintenance run --task=commit-graph --auto --quiet" &&
|
||||
|
||||
|
|
Loading…
Reference in New Issue