mirror of
https://github.com/git/git.git
synced 2024-10-28 12:59:41 +01:00
Merge branch 'jc/format-patch-rfc-more'
The "--rfc" option of "git format-patch" learned to take an optional string value to be used in place of "RFC" to tweak the "[PATCH]" on the subject header. * jc/format-patch-rfc-more: format-patch: "--rfc=-(WIP)" appends to produce [PATCH (WIP)] format-patch: allow --rfc to optionally take a value, like --rfc=WIP
This commit is contained in:
commit
708e9257f8
3 changed files with 65 additions and 10 deletions
|
@ -20,7 +20,7 @@ SYNOPSIS
|
|||
[--in-reply-to=<message-id>] [--suffix=.<sfx>]
|
||||
[--ignore-if-in-upstream] [--always]
|
||||
[--cover-from-description=<mode>]
|
||||
[--rfc] [--subject-prefix=<subject-prefix>]
|
||||
[--rfc[=<rfc>]] [--subject-prefix=<subject-prefix>]
|
||||
[(--reroll-count|-v) <n>]
|
||||
[--to=<email>] [--cc=<email>]
|
||||
[--[no-]cover-letter] [--quiet]
|
||||
|
@ -238,10 +238,21 @@ the patches (with a value of e.g. "PATCH my-project").
|
|||
value of the `format.filenameMaxLength` configuration
|
||||
variable, or 64 if unconfigured.
|
||||
|
||||
--rfc::
|
||||
Prepends "RFC" to the subject prefix (producing "RFC PATCH" by
|
||||
default). RFC means "Request For Comments"; use this when sending
|
||||
an experimental patch for discussion rather than application.
|
||||
--rfc[=<rfc>]::
|
||||
Prepends the string _<rfc>_ (defaults to "RFC") to
|
||||
the subject prefix. As the subject prefix defaults to
|
||||
"PATCH", you'll get "RFC PATCH" by default.
|
||||
+
|
||||
RFC means "Request For Comments"; use this when sending
|
||||
an experimental patch for discussion rather than application.
|
||||
"--rfc=WIP" may also be a useful way to indicate that a patch
|
||||
is not complete yet ("WIP" stands for "Work In Progress").
|
||||
+
|
||||
If the convention of the receiving community for a particular extra
|
||||
string is to have it _after_ the subject prefix, the string _<rfc>_
|
||||
can be prefixed with a dash ("`-`") to signal that the the rest of
|
||||
the _<rfc>_ string should be appended to the subject prefix instead,
|
||||
e.g., `--rfc='-(WIP)'` results in "PATCH (WIP)".
|
||||
|
||||
-v <n>::
|
||||
--reroll-count=<n>::
|
||||
|
|
|
@ -1494,6 +1494,19 @@ static int subject_prefix_callback(const struct option *opt, const char *arg,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int rfc_callback(const struct option *opt, const char *arg,
|
||||
int unset)
|
||||
{
|
||||
const char **rfc = opt->value;
|
||||
|
||||
*rfc = opt->value;
|
||||
if (unset)
|
||||
*rfc = NULL;
|
||||
else
|
||||
*rfc = arg ? arg : "RFC";
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int numbered_cmdline_opt = 0;
|
||||
|
||||
static int numbered_callback(const struct option *opt, const char *arg,
|
||||
|
@ -1907,8 +1920,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||
struct strbuf rdiff2 = STRBUF_INIT;
|
||||
struct strbuf rdiff_title = STRBUF_INIT;
|
||||
struct strbuf sprefix = STRBUF_INIT;
|
||||
const char *rfc = NULL;
|
||||
int creation_factor = -1;
|
||||
int rfc = 0;
|
||||
|
||||
const struct option builtin_format_patch_options[] = {
|
||||
OPT_CALLBACK_F('n', "numbered", &numbered, NULL,
|
||||
|
@ -1932,7 +1945,9 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||
N_("mark the series as Nth re-roll")),
|
||||
OPT_INTEGER(0, "filename-max-length", &fmt_patch_name_max,
|
||||
N_("max length of output filename")),
|
||||
OPT_BOOL(0, "rfc", &rfc, N_("use [RFC PATCH] instead of [PATCH]")),
|
||||
OPT_CALLBACK_F(0, "rfc", &rfc, N_("rfc"),
|
||||
N_("add <rfc> (default 'RFC') before 'PATCH'"),
|
||||
PARSE_OPT_OPTARG, rfc_callback),
|
||||
OPT_STRING(0, "cover-from-description", &cover_from_description_arg,
|
||||
N_("cover-from-description-mode"),
|
||||
N_("generate parts of a cover letter based on a branch's description")),
|
||||
|
@ -2050,9 +2065,12 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||
if (cover_from_description_arg)
|
||||
cover_from_description_mode = parse_cover_from_description(cover_from_description_arg);
|
||||
|
||||
if (rfc) {
|
||||
strbuf_insertstr(&sprefix, 0, "RFC ");
|
||||
if (rfc && rfc[0]) {
|
||||
subject_prefix = 1;
|
||||
if (rfc[0] == '-')
|
||||
strbuf_addf(&sprefix, " %s", rfc + 1);
|
||||
else
|
||||
strbuf_insertf(&sprefix, 0, "%s ", rfc);
|
||||
}
|
||||
|
||||
if (reroll_count) {
|
||||
|
|
|
@ -1368,12 +1368,38 @@ test_expect_success 'empty subject prefix does not have extra space' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success '--rfc' '
|
||||
test_expect_success '--rfc and --no-rfc' '
|
||||
cat >expect <<-\EOF &&
|
||||
Subject: [RFC PATCH 1/1] header with . in it
|
||||
EOF
|
||||
git format-patch -n -1 --stdout --rfc >patch &&
|
||||
grep "^Subject:" patch >actual &&
|
||||
test_cmp expect actual &&
|
||||
git format-patch -n -1 --stdout --rfc --no-rfc >patch &&
|
||||
sed -e "s/RFC //" expect >expect-raw &&
|
||||
grep "^Subject:" patch >actual &&
|
||||
test_cmp expect-raw actual
|
||||
'
|
||||
|
||||
test_expect_success '--rfc=WIP and --rfc=' '
|
||||
cat >expect <<-\EOF &&
|
||||
Subject: [WIP PATCH 1/1] header with . in it
|
||||
EOF
|
||||
git format-patch -n -1 --stdout --rfc=WIP >patch &&
|
||||
grep "^Subject:" patch >actual &&
|
||||
test_cmp expect actual &&
|
||||
git format-patch -n -1 --stdout --rfc --rfc= >patch &&
|
||||
sed -e "s/WIP //" expect >expect-raw &&
|
||||
grep "^Subject:" patch >actual &&
|
||||
test_cmp expect-raw actual
|
||||
'
|
||||
|
||||
test_expect_success '--rfc=-(WIP) appends' '
|
||||
cat >expect <<-\EOF &&
|
||||
Subject: [PATCH (WIP) 1/1] header with . in it
|
||||
EOF
|
||||
git format-patch -n -1 --stdout --rfc="-(WIP)" >patch &&
|
||||
grep "^Subject:" patch >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
|
|
Loading…
Reference in a new issue