mirror of
https://github.com/git/git.git
synced 2026-01-11 21:33:13 +09: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.
|