| 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. | |
| + | |
| * `init.defaultRefFormat=reftable` causes newly initialized repositories to use | |
| the reftable format for storing references. This new format solves issues with | |
| case-insensitive filesystems, compresses better and performs significantly | |
| better with many use cases. Refer to Documentation/technical/reftable.adoc for | |
| more information on this new storage format. | |
| 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. |