Git fork
at reftables-rust 107 lines 4.4 kB view raw
1extensions.*:: 2 Unless otherwise stated, is an error to specify an extension if 3 `core.repositoryFormatVersion` is not `1`. See 4 linkgit:gitrepository-layout[5]. 5+ 6compatObjectFormat::: 7 Specify a compatibility hash algorithm to use. The acceptable values 8 are `sha1` and `sha256`. The value specified must be different from the 9 value of `extensions.objectFormat`. This allows client level 10 interoperability between git repositories whose objectFormat matches 11 this compatObjectFormat. In particular when fully implemented the 12 pushes and pulls from a repository in whose objectFormat matches 13 compatObjectFormat. As well as being able to use oids encoded in 14 compatObjectFormat in addition to oids encoded with objectFormat to 15 locally specify objects. 16+ 17Note that the functionality enabled by this extension is incomplete and subject 18to change. It currently exists only to allow development and testing of 19the underlying feature and is not designed to be enabled by end users. 20 21noop::: 22 This extension does not change git's behavior at all. It is useful only 23 for testing format-1 compatibility. 24+ 25For historical reasons, this extension is respected regardless of the 26`core.repositoryFormatVersion` setting. 27 28noop-v1::: 29 This extension does not change git's behavior at all. It is useful only 30 for testing format-1 compatibility. 31 32objectFormat::: 33 Specify the hash algorithm to use. The acceptable values are `sha1` and 34 `sha256`. If not specified, `sha1` is assumed. 35+ 36Note that this setting should only be set by linkgit:git-init[1] or 37linkgit:git-clone[1]. Trying to change it after initialization will not 38work and will produce hard-to-diagnose issues. 39 40partialClone::: 41 When enabled, indicates that the repo was created with a partial clone 42 (or later performed a partial fetch) and that the remote may have 43 omitted sending certain unwanted objects. Such a remote is called a 44 "promisor remote" and it promises that all such omitted objects can 45 be fetched from it in the future. 46+ 47The value of this key is the name of the promisor remote. 48+ 49For historical reasons, this extension is respected regardless of the 50`core.repositoryFormatVersion` setting. 51 52preciousObjects::: 53 If enabled, indicates that objects in the repository MUST NOT be deleted 54 (e.g., by `git-prune` or `git repack -d`). 55+ 56For historical reasons, this extension is respected regardless of the 57`core.repositoryFormatVersion` setting. 58 59refStorage::: 60 Specify the ref storage format to use. The acceptable values are: 61+ 62-- 63include::../ref-storage-format.adoc[] 64-- 65+ 66Note that this setting should only be set by linkgit:git-init[1] or 67linkgit:git-clone[1]. Trying to change it after initialization will not 68work and will produce hard-to-diagnose issues. 69 70relativeWorktrees::: 71 If enabled, indicates at least one worktree has been linked with 72 relative paths. Automatically set if a worktree has been created or 73 repaired with either the `--relative-paths` option or with the 74 `worktree.useRelativePaths` config set to `true`. 75 76worktreeConfig::: 77 If enabled, then worktrees will load config settings from the 78 `$GIT_DIR/config.worktree` file in addition to the 79 `$GIT_COMMON_DIR/config` file. Note that `$GIT_COMMON_DIR` and 80 `$GIT_DIR` are the same for the main working tree, while other 81 working trees have `$GIT_DIR` equal to 82 `$GIT_COMMON_DIR/worktrees/<id>/`. The settings in the 83 `config.worktree` file will override settings from any other 84 config files. 85+ 86When enabling this extension, you must be careful to move 87certain values from the common config file to the main working tree's 88`config.worktree` file, if present: 89+ 90-- 91* `core.worktree` must be moved from `$GIT_COMMON_DIR/config` to 92 `$GIT_COMMON_DIR/config.worktree`. 93* If `core.bare` is true, then it must be moved from `$GIT_COMMON_DIR/config` 94 to `$GIT_COMMON_DIR/config.worktree`. 95-- 96+ 97It may also be beneficial to adjust the locations of `core.sparseCheckout` 98and `core.sparseCheckoutCone` depending on your desire for customizable 99sparse-checkout settings for each worktree. By default, the `git 100sparse-checkout` builtin enables this extension, assigns 101these config values on a per-worktree basis, and uses the 102`$GIT_DIR/info/sparse-checkout` file to specify the sparsity for each 103worktree independently. See linkgit:git-sparse-checkout[1] for more 104details. 105+ 106For historical reasons, this extension is respected regardless of the 107`core.repositoryFormatVersion` setting.