Skip to content

Commit

Permalink
format-patch: add arbitrary email headers
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michael Hendricks authored and Junio C Hamano committed Mar 28, 2009
1 parent eed1fcd commit d7d9c2d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Documentation/git-format-patch.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions builtin-log.c
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}
Expand Down
15 changes: 15 additions & 0 deletions t/t4014-format-patch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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/ &&
Expand Down

0 comments on commit d7d9c2d

Please sign in to comment.