mirror of
https://github.com/git/git.git
synced 2025-03-16 17:15:11 +00:00
Introduce 'git-format-patch --suffix=.patch'
The default can also be changed with "format.suffix" configuration. Leaving it empty would not add any suffix. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
2aa73a8fa2
commit
03eeaeaea5
@ -11,7 +11,7 @@ SYNOPSIS
|
|||||||
[verse]
|
[verse]
|
||||||
'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [--thread]
|
'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [--thread]
|
||||||
[-s | --signoff] [--diff-options] [--start-number <n>]
|
[-s | --signoff] [--diff-options] [--start-number <n>]
|
||||||
[--in-reply-to=Message-Id]
|
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
|
||||||
<since>[..<until>]
|
<since>[..<until>]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
@ -78,6 +78,16 @@ OPTIONS
|
|||||||
reply to the given Message-Id, which avoids breaking threads to
|
reply to the given Message-Id, which avoids breaking threads to
|
||||||
provide a new patch series.
|
provide a new patch series.
|
||||||
|
|
||||||
|
--suffix=.<sfx>::
|
||||||
|
Instead of using `.txt` as the suffix for generated
|
||||||
|
filenames, use specifed suffix. A common alternative is
|
||||||
|
`--suffix=.patch`.
|
||||||
|
+
|
||||||
|
Note that you would need to include the leading dot `.` if you
|
||||||
|
want a filename like `0001-description-of-my-change.patch`, and
|
||||||
|
the first letter does not have to be a dot. Leaving it empty would
|
||||||
|
not add any suffix.
|
||||||
|
|
||||||
CONFIGURATION
|
CONFIGURATION
|
||||||
-------------
|
-------------
|
||||||
You can specify extra mail header lines to be added to each
|
You can specify extra mail header lines to be added to each
|
||||||
@ -86,6 +96,11 @@ message in the repository configuration as follows:
|
|||||||
[format]
|
[format]
|
||||||
headers = "Organization: git-foo\n"
|
headers = "Organization: git-foo\n"
|
||||||
|
|
||||||
|
You can specify default suffix used:
|
||||||
|
|
||||||
|
[format]
|
||||||
|
suffix = .patch
|
||||||
|
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
--------
|
--------
|
||||||
|
@ -197,6 +197,7 @@ static int istitlechar(char c)
|
|||||||
|
|
||||||
static char *extra_headers = NULL;
|
static char *extra_headers = NULL;
|
||||||
static int extra_headers_size = 0;
|
static int extra_headers_size = 0;
|
||||||
|
static const char *fmt_patch_suffix = ".txt";
|
||||||
|
|
||||||
static int git_format_config(const char *var, const char *value)
|
static int git_format_config(const char *var, const char *value)
|
||||||
{
|
{
|
||||||
@ -208,6 +209,12 @@ static int git_format_config(const char *var, const char *value)
|
|||||||
strcat(extra_headers, value);
|
strcat(extra_headers, value);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (!strcmp(var, "format.suffix")) {
|
||||||
|
if (!value)
|
||||||
|
die("format.suffix without value");
|
||||||
|
fmt_patch_suffix = xstrdup(value);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (!strcmp(var, "diff.color") || !strcmp(var, "color.diff")) {
|
if (!strcmp(var, "diff.color") || !strcmp(var, "color.diff")) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -223,9 +230,10 @@ static void reopen_stdout(struct commit *commit, int nr, int keep_subject)
|
|||||||
char filename[1024];
|
char filename[1024];
|
||||||
char *sol;
|
char *sol;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
|
int suffix_len = strlen(fmt_patch_suffix) + 10; /* ., NUL and slop */
|
||||||
|
|
||||||
if (output_directory) {
|
if (output_directory) {
|
||||||
strlcpy(filename, output_directory, 1010);
|
strlcpy(filename, output_directory, 1000);
|
||||||
len = strlen(filename);
|
len = strlen(filename);
|
||||||
if (filename[len - 1] != '/')
|
if (filename[len - 1] != '/')
|
||||||
filename[len++] = '/';
|
filename[len++] = '/';
|
||||||
@ -249,7 +257,10 @@ static void reopen_stdout(struct commit *commit, int nr, int keep_subject)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; len < 1024 - 6 && sol[j] && sol[j] != '\n'; j++) {
|
for (j = 0;
|
||||||
|
len < sizeof(filename) - suffix_len &&
|
||||||
|
sol[j] && sol[j] != '\n';
|
||||||
|
j++) {
|
||||||
if (istitlechar(sol[j])) {
|
if (istitlechar(sol[j])) {
|
||||||
if (space) {
|
if (space) {
|
||||||
filename[len++] = '-';
|
filename[len++] = '-';
|
||||||
@ -265,7 +276,7 @@ static void reopen_stdout(struct commit *commit, int nr, int keep_subject)
|
|||||||
while (filename[len - 1] == '.' || filename[len - 1] == '-')
|
while (filename[len - 1] == '.' || filename[len - 1] == '-')
|
||||||
len--;
|
len--;
|
||||||
}
|
}
|
||||||
strcpy(filename + len, ".txt");
|
strcpy(filename + len, fmt_patch_suffix);
|
||||||
fprintf(realstdout, "%s\n", filename);
|
fprintf(realstdout, "%s\n", filename);
|
||||||
freopen(filename, "w", stdout);
|
freopen(filename, "w", stdout);
|
||||||
}
|
}
|
||||||
@ -436,6 +447,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||||||
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 (!strncmp(argv[i], "--suffix=", 9))
|
||||||
|
fmt_patch_suffix = argv[i] + 9;
|
||||||
else
|
else
|
||||||
argv[j++] = argv[i];
|
argv[j++] = argv[i];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user