mirror of
https://github.com/git/git.git
synced 2026-01-11 05:13:13 +09:00
Users may want to enable the --path-walk option for 'git pack-objects' by default, especially underneath commands like 'git push' or 'git repack'. This should be limited to client repositories, since the --path-walk option disables bitmap walks, so would be bad to include in Git servers when serving fetches and clones. There is potential that it may be helpful to consider when repacking the repository, to take advantage of improved deltas across historical versions of the same files. Much like how "pack.useSparse" was introduced and included in "feature.experimental" before being enabled by default, use the repository settings infrastructure to make the new "pack.usePathWalk" config enabled by "feature.experimental" and "feature.manyFiles". In order to test that this config works, add a new trace2 region around the path walk code that can be checked by a 'git push' command. Signed-off-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
42 lines
1.9 KiB
Plaintext
42 lines
1.9 KiB
Plaintext
feature.*::
|
|
The config settings that start with `feature.` modify the defaults of
|
|
a group of other config settings. These groups are created by the Git
|
|
developer community as recommended defaults and are subject to change.
|
|
In particular, new config options may be added with different defaults.
|
|
|
|
feature.experimental::
|
|
Enable config options that are new to Git, and are being considered for
|
|
future defaults. Config settings included here may be added or removed
|
|
with each release, including minor version updates. These settings may
|
|
have unintended interactions since they are so new. Please enable this
|
|
setting if you are interested in providing feedback on experimental
|
|
features. The new default values are:
|
|
+
|
|
* `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by
|
|
skipping more commits at a time, reducing the number of round trips.
|
|
+
|
|
* `pack.useBitmapBoundaryTraversal=true` may improve bitmap traversal times by
|
|
walking fewer objects.
|
|
+
|
|
* `pack.allowPackReuse=multi` may improve the time it takes to create a pack by
|
|
reusing objects from multiple packs instead of just one.
|
|
+
|
|
* `pack.usePathWalk` may speed up packfile creation and make the packfiles be
|
|
significantly smaller in the presence of certain filename collisions with Git's
|
|
default name-hash.
|
|
|
|
feature.manyFiles::
|
|
Enable config options that optimize for repos with many files in the
|
|
working directory. With many files, commands such as `git status` and
|
|
`git checkout` may be slow and these new defaults improve performance:
|
|
+
|
|
* `index.skipHash=true` speeds up index writes by not computing a trailing
|
|
checksum. Note that this will cause Git versions earlier than 2.13.0 to
|
|
refuse to parse the index and Git versions earlier than 2.40.0 will report
|
|
a corrupted index during `git fsck`.
|
|
+
|
|
* `index.version=4` enables path-prefix compression in the index.
|
|
+
|
|
* `core.untrackedCache=true` enables the untracked cache. This setting assumes
|
|
that mtime is working on your machine.
|