mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
The changed-path Bloom filters feature has proven stable and reliable
over several years of use, delivering significant performance
improvement for file history computation in large monorepos. Currently
a user can opt-in to writing the changed-path Bloom filters using the
"--changed-paths" option to "git commit-graph write". The filters will
be persisted until the user drops the filters using the
"--no-changed-paths" option. For this functionality, refer to 0087a87ba8
(commit-graph: persist existence of changed-paths, 2020-07-01).
Large monorepos using Git's background maintenance to build and update
commit-graph files could use an easy switch to enable this feature
without a foreground computation. In this commit, we're proposing a new
config option "commitGraph.changedPaths":
* If "true", "git commit-graph write" will write Bloom filters,
equivalent to passing "--changed-paths";
* If "false" or "unset", 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 behaviour of "git
commit-graph write" without any "--[no-]changed-paths" option. Note
"false" can disable a previous "true" config value but doesn't imply
"--no-changed-paths".
This config will always respect the precedence of command line option
"--[no-]changed-paths".
We also set this new config as optional recommended config in scalar to
turn on this feature for large repos.
Helped-by: Derrick Stolee <stolee@gmail.com>
Signed-off-by: Emily Yang <emilyyang.git@gmail.com>
Acked-by: Derrick Stolee <stolee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
49 lines
2.1 KiB
Plaintext
49 lines
2.1 KiB
Plaintext
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.
|