| 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: |
| + |
| * `pack.useSparse=true` uses a new algorithm when constructing a pack-file |
| which can improve `git push` performance in repos with many files. |
| + |
| * `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by |
| skipping more commits at a time, reducing the number of round trips. |
| + |
| * `fetch.writeCommitGraph=true` writes a commit-graph after every `git fetch` |
| command that downloads a pack-file from a remote. Using the `--split` option, |
| most executions will create a very small commit-graph file on top of the |
| existing commit-graph file(s). Occasionally, these files will merge and the |
| write may take longer. Having an updated commit-graph file helps performance |
| of many Git commands, including `git merge-base`, `git push -f`, and |
| `git log --graph`. |
| |
| 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.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. |