mirror of
https://github.com/git/git
synced 2024-10-28 19:25:47 +00:00
Merge branch 'ak/format-patch-odir-config'
"git format-patch" learned to notice format.outputDirectory configuration variable. This allows "-o <dir>" option to be omitted on the command line if you always use the same directory in your workflow. * ak/format-patch-odir-config: format-patch: introduce format.outputDirectory configuration
This commit is contained in:
commit
b2ed5ae80a
4 changed files with 30 additions and 1 deletions
|
@ -1245,6 +1245,10 @@ format.coverLetter::
|
|||
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.
|
||||
|
||||
format.outputDirectory::
|
||||
Set a custom directory to store the resulting files instead of the
|
||||
current working directory.
|
||||
|
||||
filter.<driver>.clean::
|
||||
The command which is used to convert the content of a worktree
|
||||
file to a blob upon checkin. See linkgit:gitattributes[5] for
|
||||
|
|
|
@ -57,7 +57,11 @@ The names of the output files are printed to standard
|
|||
output, unless the `--stdout` option is specified.
|
||||
|
||||
If `-o` is specified, output files are created in <dir>. Otherwise
|
||||
they are created in the current working directory.
|
||||
they are created in the current working directory. The default path
|
||||
can be set with the 'format.outputDirectory' configuration option.
|
||||
The `-o` option takes precedence over `format.outputDirectory`.
|
||||
To store patches in the current working directory even when
|
||||
`format.outputDirectory` points elsewhere, use `-o .`.
|
||||
|
||||
By default, the subject of a single patch is "[PATCH] " followed by
|
||||
the concatenation of lines from the commit message up to the first blank
|
||||
|
|
|
@ -699,6 +699,7 @@ static int do_signoff;
|
|||
static const char *signature = git_version_string;
|
||||
static const char *signature_file;
|
||||
static int config_cover_letter;
|
||||
static const char *config_output_directory;
|
||||
|
||||
enum {
|
||||
COVER_UNSET,
|
||||
|
@ -777,6 +778,8 @@ static int git_format_config(const char *var, const char *value, void *cb)
|
|||
config_cover_letter = git_config_bool(var, value) ? COVER_ON : COVER_OFF;
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "format.outputdirectory"))
|
||||
return git_config_string(&config_output_directory, var, value);
|
||||
|
||||
return git_log_config(var, value, cb);
|
||||
}
|
||||
|
@ -1391,6 +1394,9 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||
if (rev.show_notes)
|
||||
init_display_notes(&rev.notes_opt);
|
||||
|
||||
if (!output_directory && !use_stdout)
|
||||
output_directory = config_output_directory;
|
||||
|
||||
if (!use_stdout)
|
||||
output_directory = set_outdir(prefix, output_directory);
|
||||
else
|
||||
|
|
|
@ -1445,4 +1445,19 @@ test_expect_success 'From line has expected format' '
|
|||
test_cmp from filtered
|
||||
'
|
||||
|
||||
test_expect_success 'format-patch format.outputDirectory option' '
|
||||
test_config format.outputDirectory patches &&
|
||||
rm -fr patches &&
|
||||
git format-patch master..side &&
|
||||
test $(git rev-list master..side | wc -l) -eq $(ls patches | wc -l)
|
||||
'
|
||||
|
||||
test_expect_success 'format-patch -o overrides format.outputDirectory' '
|
||||
test_config format.outputDirectory patches &&
|
||||
rm -fr patches patchset &&
|
||||
git format-patch master..side -o patchset &&
|
||||
test_path_is_missing patches &&
|
||||
test_path_is_dir patchset
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Loading…
Reference in a new issue