Skip to content

Commit

Permalink
trailer: ignore first line of message
Browse files Browse the repository at this point in the history
When looking for the start of the trailers in the message
we are passed, we should ignore the first line of the message.

The reason is that if we are passed a patch or commit message
then the first line should be the patch title.
If we are passed only trailers we can expect that they start
with an empty line that can be ignored too.

This way we can properly process commit messages that have
only one line with something that looks like a trailer, for
example like "area of code: change we made".

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Christian Couder authored and Junio C Hamano committed Aug 21, 2015
1 parent fdf96a2 commit dc5d553
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
15 changes: 14 additions & 1 deletion t/t7513-interpret-trailers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,25 @@ test_expect_success 'with config option on the command line' '
Acked-by: Johan
Reviewed-by: Peff
EOF
echo "Acked-by: Johan" |
{ echo; echo "Acked-by: Johan"; } |
git -c "trailer.Acked-by.ifexists=addifdifferent" interpret-trailers \
--trailer "Reviewed-by: Peff" --trailer "Acked-by: Johan" >actual &&
test_cmp expected actual
'

test_expect_success 'with message that contains only a title' '
cat >expected <<-\EOF &&
area: change
Reviewed-by: Peff
Acked-by: Johan
EOF
echo "area: change" |
git interpret-trailers --trailer "Reviewed-by: Peff" \
--trailer "Acked-by: Johan" >actual &&
test_cmp expected actual
'

test_expect_success 'with config setup' '
git config trailer.ack.key "Acked-by: " &&
cat >expected <<-\EOF &&
Expand Down
3 changes: 2 additions & 1 deletion trailer.c
Original file line number Diff line number Diff line change
Expand Up @@ -748,8 +748,9 @@ static int find_trailer_start(struct strbuf **lines, int count)
/*
* Get the start of the trailers by looking starting from the end
* for a line with only spaces before lines with one separator.
* The start cannot be the first line.
*/
for (start = count - 1; start >= 0; start--) {
for (start = count - 1; start >= 1; start--) {
if (lines[start]->buf[0] == comment_line_char)
continue;
if (contains_only_spaces(lines[start]->buf)) {
Expand Down

0 comments on commit dc5d553

Please sign in to comment.