зеркало из https://github.com/microsoft/git.git
Add custom subject prefix support to format-patch (take 3)
Add a new option to git-format-patch, entitled --subject-prefix that allows control of the subject prefix '[PATCH]'. Using this option, the text 'PATCH' is replaced with whatever input is provided to the option. This allows easily generating patches like '[PATCH 2.6.21-rc3]' or properly numbered series like '[-mm3 PATCH N/M]'. This patch provides the implementation and documentation. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
566f5b217d
Коммит
2d9e4a47d1
|
@ -14,6 +14,7 @@ SYNOPSIS
|
||||||
[-s | --signoff] [<common diff options>] [--start-number <n>]
|
[-s | --signoff] [<common diff options>] [--start-number <n>]
|
||||||
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
|
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
|
||||||
[--ignore-if-in-upstream]
|
[--ignore-if-in-upstream]
|
||||||
|
[--subject-prefix=Subject-Prefix]
|
||||||
<since>[..<until>]
|
<since>[..<until>]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
@ -98,6 +99,12 @@ include::diff-options.txt[]
|
||||||
patches being generated, and any patch that matches is
|
patches being generated, and any patch that matches is
|
||||||
ignored.
|
ignored.
|
||||||
|
|
||||||
|
--subject-prefix=<Subject-Prefix>::
|
||||||
|
Instead of the standard '[PATCH]' prefix in the subject
|
||||||
|
line, instead use '[<Subject-Prefix>]'. This
|
||||||
|
allows for useful naming of a patch series, and can be
|
||||||
|
combined with the --numbered option.
|
||||||
|
|
||||||
--suffix=.<sfx>::
|
--suffix=.<sfx>::
|
||||||
Instead of using `.patch` as the suffix for generated
|
Instead of using `.patch` as the suffix for generated
|
||||||
filenames, use specifed suffix. A common alternative is
|
filenames, use specifed suffix. A common alternative is
|
||||||
|
|
|
@ -417,6 +417,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
||||||
int numbered = 0;
|
int numbered = 0;
|
||||||
int start_number = -1;
|
int start_number = -1;
|
||||||
int keep_subject = 0;
|
int keep_subject = 0;
|
||||||
|
int subject_prefix = 0;
|
||||||
int ignore_if_in_upstream = 0;
|
int ignore_if_in_upstream = 0;
|
||||||
int thread = 0;
|
int thread = 0;
|
||||||
const char *in_reply_to = NULL;
|
const char *in_reply_to = NULL;
|
||||||
|
@ -434,6 +435,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
||||||
rev.ignore_merges = 1;
|
rev.ignore_merges = 1;
|
||||||
rev.diffopt.msg_sep = "";
|
rev.diffopt.msg_sep = "";
|
||||||
rev.diffopt.recursive = 1;
|
rev.diffopt.recursive = 1;
|
||||||
|
rev.subject_prefix = "PATCH";
|
||||||
|
|
||||||
rev.extra_headers = extra_headers;
|
rev.extra_headers = extra_headers;
|
||||||
|
|
||||||
|
@ -509,8 +511,10 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
||||||
if (i == argc)
|
if (i == argc)
|
||||||
die("Need a Message-Id for --in-reply-to");
|
die("Need a Message-Id for --in-reply-to");
|
||||||
in_reply_to = argv[i];
|
in_reply_to = argv[i];
|
||||||
}
|
} else if (!prefixcmp(argv[i], "--subject-prefix=")) {
|
||||||
else if (!prefixcmp(argv[i], "--suffix="))
|
subject_prefix = 1;
|
||||||
|
rev.subject_prefix = argv[i] + 17;
|
||||||
|
} else if (!prefixcmp(argv[i], "--suffix="))
|
||||||
fmt_patch_suffix = argv[i] + 9;
|
fmt_patch_suffix = argv[i] + 9;
|
||||||
else
|
else
|
||||||
argv[j++] = argv[i];
|
argv[j++] = argv[i];
|
||||||
|
@ -521,6 +525,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
||||||
start_number = 1;
|
start_number = 1;
|
||||||
if (numbered && keep_subject)
|
if (numbered && keep_subject)
|
||||||
die ("-n and -k are mutually exclusive.");
|
die ("-n and -k are mutually exclusive.");
|
||||||
|
if (keep_subject && subject_prefix)
|
||||||
|
die ("--subject-prefix and -k are mutually exclusive.");
|
||||||
|
|
||||||
argc = setup_revisions(argc, argv, &rev, "HEAD");
|
argc = setup_revisions(argc, argv, &rev, "HEAD");
|
||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
|
|
14
log-tree.c
14
log-tree.c
|
@ -165,14 +165,20 @@ void show_log(struct rev_info *opt, const char *sep)
|
||||||
if (opt->total > 0) {
|
if (opt->total > 0) {
|
||||||
static char buffer[64];
|
static char buffer[64];
|
||||||
snprintf(buffer, sizeof(buffer),
|
snprintf(buffer, sizeof(buffer),
|
||||||
"Subject: [PATCH %0*d/%d] ",
|
"Subject: [%s %0*d/%d] ",
|
||||||
|
opt->subject_prefix,
|
||||||
digits_in_number(opt->total),
|
digits_in_number(opt->total),
|
||||||
opt->nr, opt->total);
|
opt->nr, opt->total);
|
||||||
subject = buffer;
|
subject = buffer;
|
||||||
} else if (opt->total == 0)
|
} else if (opt->total == 0) {
|
||||||
subject = "Subject: [PATCH] ";
|
static char buffer[256];
|
||||||
else
|
snprintf(buffer, sizeof(buffer),
|
||||||
|
"Subject: [%s] ",
|
||||||
|
opt->subject_prefix);
|
||||||
|
subject = buffer;
|
||||||
|
} else {
|
||||||
subject = "Subject: ";
|
subject = "Subject: ";
|
||||||
|
}
|
||||||
|
|
||||||
printf("From %s Mon Sep 17 00:00:00 2001\n", sha1);
|
printf("From %s Mon Sep 17 00:00:00 2001\n", sha1);
|
||||||
if (opt->message_id)
|
if (opt->message_id)
|
||||||
|
|
|
@ -78,6 +78,7 @@ struct rev_info {
|
||||||
const char *add_signoff;
|
const char *add_signoff;
|
||||||
const char *extra_headers;
|
const char *extra_headers;
|
||||||
const char *log_reencode;
|
const char *log_reencode;
|
||||||
|
const char *subject_prefix;
|
||||||
int no_inline;
|
int no_inline;
|
||||||
|
|
||||||
/* Filter by commit log message */
|
/* Filter by commit log message */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче