mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
![Jacob Keller](/assets/img/avatar_default.png)
The format.useAutoBase configuration option exists to allow users to enable '--base=auto' for format-patch by default. This can sometimes lead to poor workflow, due to unexpected failures when attempting to format an ancient patch: $ git format-patch -1 <an old commit> fatal: base commit shouldn't be in revision list This can be very confusing, as it is not necessarily immediately obvious that the user requested a --base (since this was in the configuration, not on the command line). We do want --base=auto to fail when it cannot provide a suitable base, as it would be equally confusing if a formatted patch did not include the base information when it was requested. Teach format.useAutoBase a new mode, "whenAble". This mode will cause format-patch to attempt to include a base commit when it can. However, if no valid base commit can be found, then format-patch will continue formatting the patch without a base commit. In order to avoid making yet another branch name unusable with --base, do not teach --base=whenAble or --base=whenable. Instead, refactor the base_commit option to use a callback, and rely on the global configuration variable auto_base. This does mean that a user cannot request this optional base commit generation from the command line. However, this is likely not too valuable. If the user requests base information manually, they will be immediately informed of the failure to acquire a suitable base commit. This allows the user to make an informed choice about whether to continue the format. Add tests to cover the new mode of operation for --base. Signed-off-by: Jacob Keller <jacob.keller@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
133 lines
5.1 KiB
Plaintext
133 lines
5.1 KiB
Plaintext
format.attach::
|
|
Enable multipart/mixed attachments as the default for
|
|
'format-patch'. The value can also be a double quoted string
|
|
which will enable attachments as the default and set the
|
|
value as the boundary. See the --attach option in
|
|
linkgit:git-format-patch[1].
|
|
|
|
format.from::
|
|
Provides the default value for the `--from` option to format-patch.
|
|
Accepts a boolean value, or a name and email address. If false,
|
|
format-patch defaults to `--no-from`, using commit authors directly in
|
|
the "From:" field of patch mails. If true, format-patch defaults to
|
|
`--from`, using your committer identity in the "From:" field of patch
|
|
mails and including a "From:" field in the body of the patch mail if
|
|
different. If set to a non-boolean value, format-patch uses that
|
|
value instead of your committer identity. Defaults to false.
|
|
|
|
format.numbered::
|
|
A boolean which can enable or disable sequence numbers in patch
|
|
subjects. It defaults to "auto" which enables it only if there
|
|
is more than one patch. It can be enabled or disabled for all
|
|
messages by setting it to "true" or "false". See --numbered
|
|
option in linkgit:git-format-patch[1].
|
|
|
|
format.headers::
|
|
Additional email headers to include in a patch to be submitted
|
|
by mail. See linkgit:git-format-patch[1].
|
|
|
|
format.to::
|
|
format.cc::
|
|
Additional recipients to include in a patch to be submitted
|
|
by mail. See the --to and --cc options in
|
|
linkgit:git-format-patch[1].
|
|
|
|
format.subjectPrefix::
|
|
The default for format-patch is to output files with the '[PATCH]'
|
|
subject prefix. Use this variable to change that prefix.
|
|
|
|
format.coverFromDescription::
|
|
The default mode for format-patch to determine which parts of
|
|
the cover letter will be populated using the branch's
|
|
description. See the `--cover-from-description` option in
|
|
linkgit:git-format-patch[1].
|
|
|
|
format.signature::
|
|
The default for format-patch is to output a signature containing
|
|
the Git version number. Use this variable to change that default.
|
|
Set this variable to the empty string ("") to suppress
|
|
signature generation.
|
|
|
|
format.signatureFile::
|
|
Works just like format.signature except the contents of the
|
|
file specified by this variable will be used as the signature.
|
|
|
|
format.suffix::
|
|
The default for format-patch is to output files with the suffix
|
|
`.patch`. Use this variable to change that suffix (make sure to
|
|
include the dot if you want it).
|
|
|
|
format.encodeEmailHeaders::
|
|
Encode email headers that have non-ASCII characters with
|
|
"Q-encoding" (described in RFC 2047) for email transmission.
|
|
Defaults to true.
|
|
|
|
format.pretty::
|
|
The default pretty format for log/show/whatchanged command,
|
|
See linkgit:git-log[1], linkgit:git-show[1],
|
|
linkgit:git-whatchanged[1].
|
|
|
|
format.thread::
|
|
The default threading style for 'git format-patch'. Can be
|
|
a boolean value, or `shallow` or `deep`. `shallow` threading
|
|
makes every mail a reply to the head of the series,
|
|
where the head is chosen from the cover letter, the
|
|
`--in-reply-to`, and the first patch mail, in this order.
|
|
`deep` threading makes every mail a reply to the previous one.
|
|
A true boolean value is the same as `shallow`, and a false
|
|
value disables threading.
|
|
|
|
format.signOff::
|
|
A boolean value which lets you enable the `-s/--signoff` option of
|
|
format-patch by default. *Note:* Adding the Signed-off-by: line to a
|
|
patch should be a conscious act and means that you certify you have
|
|
the rights to submit this work under the same open source license.
|
|
Please see the 'SubmittingPatches' document for further discussion.
|
|
|
|
format.coverLetter::
|
|
A boolean that controls whether to generate a cover-letter when
|
|
format-patch is invoked, but in addition can be set to "auto", to
|
|
generate a cover-letter only when there's more than one patch.
|
|
Default is false.
|
|
|
|
format.outputDirectory::
|
|
Set a custom directory to store the resulting files instead of the
|
|
current working directory. All directory components will be created.
|
|
|
|
format.useAutoBase::
|
|
A boolean value which lets you enable the `--base=auto` option of
|
|
format-patch by default. Can also be set to "whenAble" to allow
|
|
enabling `--base=auto` if a suitable base is available, but to skip
|
|
adding base info otherwise without the format dying.
|
|
|
|
format.notes::
|
|
Provides the default value for the `--notes` option to
|
|
format-patch. Accepts a boolean value, or a ref which specifies
|
|
where to get notes. If false, format-patch defaults to
|
|
`--no-notes`. If true, format-patch defaults to `--notes`. If
|
|
set to a non-boolean value, format-patch defaults to
|
|
`--notes=<ref>`, where `ref` is the non-boolean value. Defaults
|
|
to false.
|
|
+
|
|
If one wishes to use the ref `ref/notes/true`, please use that literal
|
|
instead.
|
|
+
|
|
This configuration can be specified multiple times in order to allow
|
|
multiple notes refs to be included. In that case, it will behave
|
|
similarly to multiple `--[no-]notes[=]` options passed in. That is, a
|
|
value of `true` will show the default notes, a value of `<ref>` will
|
|
also show notes from that notes ref and a value of `false` will negate
|
|
previous configurations and not show notes.
|
|
+
|
|
For example,
|
|
+
|
|
------------
|
|
[format]
|
|
notes = true
|
|
notes = foo
|
|
notes = false
|
|
notes = bar
|
|
------------
|
|
+
|
|
will only show notes from `refs/notes/bar`.
|