The compatibility object format is only implemented for loose objects, not packed objects, so anyone attempting to push or fetch data into a repository with this option will likely not see it work as expected. In addition, the underlying storage of loose object mapping is likely to change because the current format is inefficient and does not handle important mapping information such as that of submodules. It would have been preferable to initially document that this was not yet ready for prime time, but we did not do so. We hinted at the fact that this functionality is incomplete in the description, but did not say so explicitly. Let's do so now: indicate that this feature is incomplete and subject to change and that the option is not designed to be used by end users. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
108 lines
4.3 KiB
Plaintext
108 lines
4.3 KiB
Plaintext
extensions.*::
|
|
Unless otherwise stated, is an error to specify an extension if
|
|
`core.repositoryFormatVersion` is not `1`. See
|
|
linkgit:gitrepository-layout[5].
|
|
+
|
|
--
|
|
compatObjectFormat::
|
|
Specify a compatibility hash algorithm to use. The acceptable values
|
|
are `sha1` and `sha256`. The value specified must be different from the
|
|
value of `extensions.objectFormat`. This allows client level
|
|
interoperability between git repositories whose objectFormat matches
|
|
this compatObjectFormat. In particular when fully implemented the
|
|
pushes and pulls from a repository in whose objectFormat matches
|
|
compatObjectFormat. As well as being able to use oids encoded in
|
|
compatObjectFormat in addition to oids encoded with objectFormat to
|
|
locally specify objects.
|
|
+
|
|
Note that the functionality enabled by this extension is incomplete and subject
|
|
to change. It currently exists only to allow development and testing of
|
|
the underlying feature and is not designed to be enabled by end users.
|
|
|
|
noop::
|
|
This extension does not change git's behavior at all. It is useful only
|
|
for testing format-1 compatibility.
|
|
+
|
|
For historical reasons, this extension is respected regardless of the
|
|
`core.repositoryFormatVersion` setting.
|
|
|
|
noop-v1::
|
|
This extension does not change git's behavior at all. It is useful only
|
|
for testing format-1 compatibility.
|
|
|
|
objectFormat::
|
|
Specify the hash algorithm to use. The acceptable values are `sha1` and
|
|
`sha256`. If not specified, `sha1` is assumed.
|
|
+
|
|
Note that this setting should only be set by linkgit:git-init[1] or
|
|
linkgit:git-clone[1]. Trying to change it after initialization will not
|
|
work and will produce hard-to-diagnose issues.
|
|
|
|
partialClone::
|
|
When enabled, indicates that the repo was created with a partial clone
|
|
(or later performed a partial fetch) and that the remote may have
|
|
omitted sending certain unwanted objects. Such a remote is called a
|
|
"promisor remote" and it promises that all such omitted objects can
|
|
be fetched from it in the future.
|
|
+
|
|
The value of this key is the name of the promisor remote.
|
|
+
|
|
For historical reasons, this extension is respected regardless of the
|
|
`core.repositoryFormatVersion` setting.
|
|
|
|
preciousObjects::
|
|
If enabled, indicates that objects in the repository MUST NOT be deleted
|
|
(e.g., by `git-prune` or `git repack -d`).
|
|
+
|
|
For historical reasons, this extension is respected regardless of the
|
|
`core.repositoryFormatVersion` setting.
|
|
|
|
refStorage::
|
|
Specify the ref storage format to use. The acceptable values are:
|
|
+
|
|
include::../ref-storage-format.adoc[]
|
|
|
|
+
|
|
Note that this setting should only be set by linkgit:git-init[1] or
|
|
linkgit:git-clone[1]. Trying to change it after initialization will not
|
|
work and will produce hard-to-diagnose issues.
|
|
|
|
relativeWorktrees::
|
|
If enabled, indicates at least one worktree has been linked with
|
|
relative paths. Automatically set if a worktree has been created or
|
|
repaired with either the `--relative-paths` option or with the
|
|
`worktree.useRelativePaths` config set to `true`.
|
|
|
|
worktreeConfig::
|
|
If enabled, then worktrees will load config settings from the
|
|
`$GIT_DIR/config.worktree` file in addition to the
|
|
`$GIT_COMMON_DIR/config` file. Note that `$GIT_COMMON_DIR` and
|
|
`$GIT_DIR` are the same for the main working tree, while other
|
|
working trees have `$GIT_DIR` equal to
|
|
`$GIT_COMMON_DIR/worktrees/<id>/`. The settings in the
|
|
`config.worktree` file will override settings from any other
|
|
config files.
|
|
+
|
|
When enabling this extension, you must be careful to move
|
|
certain values from the common config file to the main working tree's
|
|
`config.worktree` file, if present:
|
|
+
|
|
* `core.worktree` must be moved from `$GIT_COMMON_DIR/config` to
|
|
`$GIT_COMMON_DIR/config.worktree`.
|
|
* If `core.bare` is true, then it must be moved from `$GIT_COMMON_DIR/config`
|
|
to `$GIT_COMMON_DIR/config.worktree`.
|
|
|
|
+
|
|
It may also be beneficial to adjust the locations of `core.sparseCheckout`
|
|
and `core.sparseCheckoutCone` depending on your desire for customizable
|
|
sparse-checkout settings for each worktree. By default, the `git
|
|
sparse-checkout` builtin enables this extension, assigns
|
|
these config values on a per-worktree basis, and uses the
|
|
`$GIT_DIR/info/sparse-checkout` file to specify the sparsity for each
|
|
worktree independently. See linkgit:git-sparse-checkout[1] for more
|
|
details.
|
|
+
|
|
For historical reasons, this extension is respected regardless of the
|
|
`core.repositoryFormatVersion` setting.
|
|
--
|