format-patch: add arbitrary email headers

format-patch supports the format.headers configuration for adding
arbitrary email headers to the patches it outputs.  This patch adds
support for an --add-header argument which makes the same feature
available from the command line.  This is useful when the content of
custom email headers must change from branch to branch.

This patch has been sponsored by Grant Street Group

Signed-off-by: Michael Hendricks <michael@ndrix.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael Hendricks 2009-03-26 10:51:05 -06:00 коммит произвёл Junio C Hamano
Родитель eed1fcd76d
Коммит d7d9c2d049
3 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -161,6 +161,11 @@ if that is not set.
Add a "Cc:" header to the email headers. This is in addition
to any configured headers, and may be used multiple times.
--add-header=<header>::
Add an arbitrary header to the email headers. This is in addition
to any configured headers, and may be used multiple times.
For example, --add-header="Organization: git-foo"
--cover-letter::
In addition to the patches, generate a cover letter file
containing the shortlog and the overall diffstat. You can

Просмотреть файл

@ -918,6 +918,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
cover_letter = 1;
else if (!strcmp(argv[i], "--no-binary"))
no_binary_diff = 1;
else if (!prefixcmp(argv[i], "--add-header="))
add_header(argv[i] + 13);
else
argv[j++] = argv[i];
}

Просмотреть файл

@ -128,6 +128,21 @@ test_expect_success 'additional command line cc' '
grep "^ *S. E. Cipient <scipient@example.com>$" patch5
'
test_expect_success 'command line headers' '
git config --unset-all format.headers &&
git format-patch --add-header="Cc: R. E. Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^$/q" >patch6 &&
grep "^Cc: R. E. Cipient <rcipient@example.com>$" patch6
'
test_expect_success 'configuration headers and command line headers' '
git config --replace-all format.headers "Cc: R. E. Cipient <rcipient@example.com>" &&
git format-patch --add-header="Cc: S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^$/q" >patch7 &&
grep "^Cc: R. E. Cipient <rcipient@example.com>,$" patch7 &&
grep "^ *S. E. Cipient <scipient@example.com>$" patch7
'
test_expect_success 'multiple files' '
rm -rf patches/ &&