From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> The config setting "core.commitGraph" enables using the commit-graph file to accelerate commit walks through parsing speed and generation numbers. The setting "gc.writeCommitGraph" enables writing the commit-graph file on every non-trivial 'git gc' operation. Together, they help users automatically improve their performance. By setting these config variables to true by default, we make the commit-graph feature an "opt-out" feature instead of "opt-in". Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> --- Documentation/config.txt | 4 ++-- builtin/gc.c | 2 +- commit-graph.c | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index f6f4c21a54..dc5ee7c145 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -923,7 +923,7 @@ the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1]. core.commitGraph:: If true, then git will read the commit-graph file (if it exists) - to parse the graph structure of commits. Defaults to false. See + to parse the graph structure of commits. Defaults to true. See linkgit:git-commit-graph[1] for more information. core.useReplaceRefs:: @@ -1639,7 +1639,7 @@ gc.writeCommitGraph:: If true, then gc will rewrite the commit-graph file when linkgit:git-gc[1] is run. When using linkgit:git-gc[1] '--auto' the commit-graph will be updated if housekeeping is - required. Default is false. See linkgit:git-commit-graph[1] + required. Default is true. See linkgit:git-commit-graph[1] for details. gc.logExpiry:: diff --git a/builtin/gc.c b/builtin/gc.c index 871a56f1c5..77e7413f94 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -41,7 +41,7 @@ static int aggressive_depth = 50; static int aggressive_window = 250; static int gc_auto_threshold = 6700; static int gc_auto_pack_limit = 50; -static int gc_write_commit_graph; +static int gc_write_commit_graph = 1; static int detach_auto = 1; static timestamp_t gc_log_expire_time; static const char *gc_log_expire = "1.day.ago"; diff --git a/commit-graph.c b/commit-graph.c index a686758603..a459272466 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -232,15 +232,15 @@ static int prepare_commit_graph(struct repository *r) { struct alternate_object_database *alt; char *obj_dir; - int config_value; + int config_value = 1; if (r->objects->commit_graph_attempted) return !!r->objects->commit_graph; r->objects->commit_graph_attempted = 1; + repo_config_get_bool(r, "core.commitgraph", &config_value); if (!git_env_bool(GIT_TEST_COMMIT_GRAPH, 0) && - (repo_config_get_bool(r, "core.commitgraph", &config_value) || - !config_value)) + !config_value) /* * This repository is not configured to use commit graphs, so * do not load one. (But report commit_graph_attempted anyway -- gitgitgadget