summaryrefslogtreecommitdiffstats
path: root/Documentation/config/feature.txt
blob: f061b64b7484497a43fba7aaac67c7f84b012582 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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.

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.