summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Couder <christian.couder@gmail.com>2015-08-20 21:59:15 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-08-21 17:17:47 (GMT)
commitdc5d553b5582e543f3151e43f9ae0df9831a4cc9 (patch)
tree33ad02ab3f9a878ba334cc0b167e04ae79765db5
parentfdf96a20acf96a6ac538df8113b2aafd6ed71d50 (diff)
downloadgit-dc5d553b5582e543f3151e43f9ae0df9831a4cc9.zip
git-dc5d553b5582e543f3151e43f9ae0df9831a4cc9.tar.gz
git-dc5d553b5582e543f3151e43f9ae0df9831a4cc9.tar.bz2
trailer: ignore first line of message
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>
-rwxr-xr-xt/t7513-interpret-trailers.sh15
-rw-r--r--trailer.c3
2 files changed, 16 insertions, 2 deletions
diff --git a/t/t7513-interpret-trailers.sh b/t/t7513-interpret-trailers.sh
index 1efb880..33cf4d1 100755
--- a/t/t7513-interpret-trailers.sh
+++ b/t/t7513-interpret-trailers.sh
@@ -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 &&
diff --git a/trailer.c b/trailer.c
index a905f5c..f7d2713 100644
--- a/trailer.c
+++ b/trailer.c
@@ -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)) {