]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/config/extensions.txt
Merge branch 'vd/fsck-submodule-url-test'
[thirdparty/git.git] / Documentation / config / extensions.txt
CommitLineData
4feb562f 1extensions.objectFormat::
2 Specify the hash algorithm to use. The acceptable values are `sha1` and
3 `sha256`. If not specified, `sha1` is assumed. It is an error to specify
4 this key unless `core.repositoryFormatVersion` is 1.
5+
6Note that this setting should only be set by linkgit:git-init[1] or
7linkgit:git-clone[1]. Trying to change it after initialization will not
8work and will produce hard-to-diagnose issues.
5c11c0d5 9
d7497a42
PS
10extensions.refStorage::
11 Specify the ref storage format to use. The acceptable values are:
12+
13include::../ref-storage-format.txt[]
14+
15It is an error to specify this key unless `core.repositoryFormatVersion` is 1.
16+
17Note that this setting should only be set by linkgit:git-init[1] or
18linkgit:git-clone[1]. Trying to change it after initialization will not
19work and will produce hard-to-diagnose issues.
20
5c11c0d5
DS
21extensions.worktreeConfig::
22 If enabled, then worktrees will load config settings from the
23 `$GIT_DIR/config.worktree` file in addition to the
24 `$GIT_COMMON_DIR/config` file. Note that `$GIT_COMMON_DIR` and
25 `$GIT_DIR` are the same for the main working tree, while other
26 working trees have `$GIT_DIR` equal to
27 `$GIT_COMMON_DIR/worktrees/<id>/`. The settings in the
28 `config.worktree` file will override settings from any other
29 config files.
30+
31When enabling `extensions.worktreeConfig`, you must be careful to move
32certain values from the common config file to the main working tree's
33`config.worktree` file, if present:
34+
35* `core.worktree` must be moved from `$GIT_COMMON_DIR/config` to
36 `$GIT_COMMON_DIR/config.worktree`.
37* If `core.bare` is true, then it must be moved from `$GIT_COMMON_DIR/config`
38 to `$GIT_COMMON_DIR/config.worktree`.
39+
40It may also be beneficial to adjust the locations of `core.sparseCheckout`
41and `core.sparseCheckoutCone` depending on your desire for customizable
42sparse-checkout settings for each worktree. By default, the `git
43sparse-checkout` builtin enables `extensions.worktreeConfig`, assigns
44these config values on a per-worktree basis, and uses the
45`$GIT_DIR/info/sparse-checkout` file to specify the sparsity for each
46worktree independently. See linkgit:git-sparse-checkout[1] for more
47details.
48+
49For historical reasons, `extensions.worktreeConfig` is respected
50regardless of the `core.repositoryFormatVersion` setting.