
We presently use the ".txt" extension for our AsciiDoc files. While not wrong, most editors do not associate this extension with AsciiDoc, meaning that contributors don't get automatic editor functionality that could be useful, such as syntax highlighting and prose linting. It is much more common to use the ".adoc" extension for AsciiDoc files, since this helps editors automatically detect files and also allows various forges to provide rich (HTML-like) rendering. Let's do that here, renaming all of the files and updating the includes where relevant. Adjust the various build scripts and makefiles to use the new extension as well. Note that this should not result in any user-visible changes to the documentation. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
128 lines
6.1 KiB
Plaintext
128 lines
6.1 KiB
Plaintext
transfer.credentialsInUrl::
|
|
A configured URL can contain plaintext credentials in the form
|
|
`<protocol>://<user>:<password>@<domain>/<path>`. You may want
|
|
to warn or forbid the use of such configuration (in favor of
|
|
using linkgit:git-credential[1]). This will be used on
|
|
linkgit:git-clone[1], linkgit:git-fetch[1], linkgit:git-push[1],
|
|
and any other direct use of the configured URL.
|
|
+
|
|
Note that this is currently limited to detecting credentials in
|
|
`remote.<name>.url` configuration; it won't detect credentials in
|
|
`remote.<name>.pushurl` configuration.
|
|
+
|
|
You might want to enable this to prevent inadvertent credentials
|
|
exposure, e.g. because:
|
|
+
|
|
* The OS or system where you're running git may not provide a way or
|
|
otherwise allow you to configure the permissions of the
|
|
configuration file where the username and/or password are stored.
|
|
* Even if it does, having such data stored "at rest" might expose you
|
|
in other ways, e.g. a backup process might copy the data to another
|
|
system.
|
|
* The git programs will pass the full URL to one another as arguments
|
|
on the command-line, meaning the credentials will be exposed to other
|
|
unprivileged users on systems that allow them to see the full
|
|
process list of other users. On linux the "hidepid" setting
|
|
documented in procfs(5) allows for configuring this behavior.
|
|
+
|
|
If such concerns don't apply to you then you probably don't need to be
|
|
concerned about credentials exposure due to storing sensitive
|
|
data in git's configuration files. If you do want to use this, set
|
|
`transfer.credentialsInUrl` to one of these values:
|
|
+
|
|
* `allow` (default): Git will proceed with its activity without warning.
|
|
* `warn`: Git will write a warning message to `stderr` when parsing a URL
|
|
with a plaintext credential.
|
|
* `die`: Git will write a failure message to `stderr` when parsing a URL
|
|
with a plaintext credential.
|
|
|
|
transfer.fsckObjects::
|
|
When `fetch.fsckObjects` or `receive.fsckObjects` are
|
|
not set, the value of this variable is used instead.
|
|
Defaults to false.
|
|
+
|
|
When set, the fetch or receive will abort in the case of a malformed
|
|
object or a link to a nonexistent object. In addition, various other
|
|
issues are checked for, including legacy issues (see `fsck.<msg-id>`),
|
|
and potential security issues like the existence of a `.GIT` directory
|
|
or a malicious `.gitmodules` file (see the release notes for v2.2.1
|
|
and v2.17.1 for details). Other sanity and security checks may be
|
|
added in future releases.
|
|
+
|
|
On the receiving side, failing fsckObjects will make those objects
|
|
unreachable, see "QUARANTINE ENVIRONMENT" in
|
|
linkgit:git-receive-pack[1]. On the fetch side, malformed objects will
|
|
instead be left unreferenced in the repository.
|
|
+
|
|
Due to the non-quarantine nature of the `fetch.fsckObjects`
|
|
implementation it cannot be relied upon to leave the object store
|
|
clean like `receive.fsckObjects` can.
|
|
+
|
|
As objects are unpacked they're written to the object store, so there
|
|
can be cases where malicious objects get introduced even though the
|
|
"fetch" failed, only to have a subsequent "fetch" succeed because only
|
|
new incoming objects are checked, not those that have already been
|
|
written to the object store. That difference in behavior should not be
|
|
relied upon. In the future, such objects may be quarantined for
|
|
"fetch" as well.
|
|
+
|
|
For now, the paranoid need to find some way to emulate the quarantine
|
|
environment if they'd like the same protection as "push". E.g. in the
|
|
case of an internal mirror do the mirroring in two steps, one to fetch
|
|
the untrusted objects, and then do a second "push" (which will use the
|
|
quarantine) to another internal repo, and have internal clients
|
|
consume this pushed-to repository, or embargo internal fetches and
|
|
only allow them once a full "fsck" has run (and no new fetches have
|
|
happened in the meantime).
|
|
|
|
transfer.hideRefs::
|
|
String(s) `receive-pack` and `upload-pack` use to decide which
|
|
refs to omit from their initial advertisements. Use more than
|
|
one definition to specify multiple prefix strings. A ref that is
|
|
under the hierarchies listed in the value of this variable is
|
|
excluded, and is hidden when responding to `git push` or `git
|
|
fetch`. See `receive.hideRefs` and `uploadpack.hideRefs` for
|
|
program-specific versions of this config.
|
|
+
|
|
You may also include a `!` in front of the ref name to negate the entry,
|
|
explicitly exposing it, even if an earlier entry marked it as hidden.
|
|
If you have multiple hideRefs values, later entries override earlier ones
|
|
(and entries in more-specific config files override less-specific ones).
|
|
+
|
|
If a namespace is in use, the namespace prefix is stripped from each
|
|
reference before it is matched against `transfer.hiderefs` patterns. In
|
|
order to match refs before stripping, add a `^` in front of the ref name. If
|
|
you combine `!` and `^`, `!` must be specified first.
|
|
+
|
|
For example, if `refs/heads/master` is specified in `transfer.hideRefs` and
|
|
the current namespace is `foo`, then `refs/namespaces/foo/refs/heads/master`
|
|
is omitted from the advertisements. If `uploadpack.allowRefInWant` is set,
|
|
`upload-pack` will treat `want-ref refs/heads/master` in a protocol v2
|
|
`fetch` command as if `refs/namespaces/foo/refs/heads/master` did not exist.
|
|
`receive-pack`, on the other hand, will still advertise the object id the
|
|
ref is pointing to without mentioning its name (a so-called ".have" line).
|
|
+
|
|
Even if you hide refs, a client may still be able to steal the target
|
|
objects via the techniques described in the "SECURITY" section of the
|
|
linkgit:gitnamespaces[7] man page; it's best to keep private data in a
|
|
separate repository.
|
|
|
|
transfer.unpackLimit::
|
|
When `fetch.unpackLimit` or `receive.unpackLimit` are
|
|
not set, the value of this variable is used instead.
|
|
The default value is 100.
|
|
|
|
transfer.advertiseSID::
|
|
Boolean. When true, client and server processes will advertise their
|
|
unique session IDs to their remote counterpart. Defaults to false.
|
|
|
|
transfer.bundleURI::
|
|
When `true`, local `git clone` commands will request bundle
|
|
information from the remote server (if advertised) and download
|
|
bundles before continuing the clone through the Git protocol.
|
|
Defaults to `false`.
|
|
|
|
transfer.advertiseObjectInfo::
|
|
When `true`, the `object-info` capability is advertised by
|
|
servers. Defaults to false.
|