The second batch
[alt-git.git] / Documentation / config / extensions.txt
blob38dce3df359761b54dca8afcb13f77e1919de098
1 extensions.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.
6 Note that this setting should only be set by linkgit:git-init[1] or
7 linkgit:git-clone[1].  Trying to change it after initialization will not
8 work and will produce hard-to-diagnose issues.
10 extensions.compatObjectFormat::
12         Specify a compatitbility hash algorithm to use.  The acceptable values
13         are `sha1` and `sha256`.  The value specified must be different from the
14         value of extensions.objectFormat.  This allows client level
15         interoperability between git repositories whose objectFormat matches
16         this compatObjectFormat.  In particular when fully implemented the
17         pushes and pulls from a repository in whose objectFormat matches
18         compatObjectFormat.  As well as being able to use oids encoded in
19         compatObjectFormat in addition to oids encoded with objectFormat to
20         locally specify objects.
22 extensions.refStorage::
23         Specify the ref storage format to use. The acceptable values are:
25 include::../ref-storage-format.txt[]
27 It is an error to specify this key unless `core.repositoryFormatVersion` is 1.
29 Note that this setting should only be set by linkgit:git-init[1] or
30 linkgit:git-clone[1]. Trying to change it after initialization will not
31 work and will produce hard-to-diagnose issues.
33 extensions.worktreeConfig::
34         If enabled, then worktrees will load config settings from the
35         `$GIT_DIR/config.worktree` file in addition to the
36         `$GIT_COMMON_DIR/config` file. Note that `$GIT_COMMON_DIR` and
37         `$GIT_DIR` are the same for the main working tree, while other
38         working trees have `$GIT_DIR` equal to
39         `$GIT_COMMON_DIR/worktrees/<id>/`. The settings in the
40         `config.worktree` file will override settings from any other
41         config files.
43 When enabling `extensions.worktreeConfig`, you must be careful to move
44 certain values from the common config file to the main working tree's
45 `config.worktree` file, if present:
47 * `core.worktree` must be moved from `$GIT_COMMON_DIR/config` to
48   `$GIT_COMMON_DIR/config.worktree`.
49 * If `core.bare` is true, then it must be moved from `$GIT_COMMON_DIR/config`
50   to `$GIT_COMMON_DIR/config.worktree`.
52 It may also be beneficial to adjust the locations of `core.sparseCheckout`
53 and `core.sparseCheckoutCone` depending on your desire for customizable
54 sparse-checkout settings for each worktree. By default, the `git
55 sparse-checkout` builtin enables `extensions.worktreeConfig`, assigns
56 these config values on a per-worktree basis, and uses the
57 `$GIT_DIR/info/sparse-checkout` file to specify the sparsity for each
58 worktree independently. See linkgit:git-sparse-checkout[1] for more
59 details.
61 For historical reasons, `extensions.worktreeConfig` is respected
62 regardless of the `core.repositoryFormatVersion` setting.