commit-graph: use config to specify generation type
We have two established generation number versions:
1: topological levels
2: corrected commit dates
The corrected commit dates are enabled by default, but they also write
extra data in the GDAT and GDOV chunks. Services that host Git data
might want to have more control over when this feature rolls out than
just updating the Git binaries.
Add a new "commitGraph.generationVersion" config option that specifies
the intended generation number version. If this value is less than 2,
then the GDAT chunk is never written _or read_ from an existing file.
This can replace our use of the GIT_TEST_COMMIT_GRAPH_NO_GDAT
environment variable in the test suite. Remove it.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Derrick Stolee committedFeb 25, 2021 at 18:19 UTC702110aac63556b4572d9c7b65c9123ec8038ebf
7 files changed+25-15
Documentation/config/commitgraph.txt
+6
index 4582c39fc4..30604e4a4c 100644--- a/Documentation/config/commitgraph.txt+++ b/Documentation/config/commitgraph.txt@@ -1,3 +1,9 @@+commitGraph.generationVersion::+ Specifies the type of generation number version to use when writing+ or reading the commit-graph file. If version 1 is specified, then+ the corrected commit dates will not be written or read. Defaults to+ 2.+ commitGraph.maxNewFilters:: Specifies the default value for the `--max-new-filters` option of `git commit-graph write` (c.f., linkgit:git-commit-graph[1]).
index 8a12148727..c730a70770 100644--- a/t/README+++ b/t/README@@ -393,9 +393,6 @@ GIT_TEST_COMMIT_GRAPH=<boolean>, when true, forces the commit-graph to be written after every 'git commit' command, and overrides the 'core.commitGraph' setting to true.-GIT_TEST_COMMIT_GRAPH_NO_GDAT=<boolean>, when true, forces the-commit-graph to be written without generation data chunk.- GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=<boolean>, when true, forces commit-graph write to compute and write changed path Bloom filters for every 'git commit-graph write', as if the `--changed-paths` option was