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]).

commitGraph.changedPaths::
	If true, then `git commit-graph write` will compute and write
	changed-path Bloom filters by default, equivalent to passing
	`--changed-paths`. If false or unset, changed-paths Bloom filters will
	be written during `git commit-graph write` only if the filters already
	exist in the current commit-graph file. This matches the default
	behavior of `git commit-graph write` without any `--[no-]changed-paths`
	option. To rewrite a commit-graph file without any filters, use the
	`--no-changed-paths` option. Command-line option `--[no-]changed-paths`
	always takes precedence over this configuration. Defaults to unset.

commitGraph.readChangedPaths::
	Deprecated. Equivalent to commitGraph.changedPathsVersion=-1 if true, and
	commitGraph.changedPathsVersion=0 if false. (If commitGraph.changedPathVersion
	is also set, commitGraph.changedPathsVersion takes precedence.)

commitGraph.changedPathsVersion::
	Specifies the version of the changed-path Bloom filters that Git will read and
	write. May be -1, 0, 1, or 2. Note that values greater than 1 may be
	incompatible with older versions of Git which do not yet understand
	those versions. Use caution when operating in a mixed-version
	environment.
+
Defaults to -1.
+
If -1, Git will use the version of the changed-path Bloom filters in the
repository, defaulting to 1 if there are none.
+
If 0, Git will not read any Bloom filters, and will write version 1 Bloom
filters when instructed to write.
+
If 1, Git will only read version 1 Bloom filters, and will write version 1
Bloom filters.
+
If 2, Git will only read version 2 Bloom filters, and will write version 2
Bloom filters.
+
See linkgit:git-commit-graph[1] for more information.
