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