Merge branch 'la/trailer-cleanups' into maint-2.43
* la/trailer-cleanups: trailer: fix comment/cut-line regression with opts->no_dividermaint
commit
5dc7366297
|
@ -485,6 +485,24 @@ test_expect_success 'commit --trailer not confused by --- separator' '
|
||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'commit --trailer with --verbose' '
|
||||||
|
cat >msg <<-\EOF &&
|
||||||
|
subject
|
||||||
|
|
||||||
|
body
|
||||||
|
EOF
|
||||||
|
GIT_EDITOR=: git commit --edit -F msg --allow-empty \
|
||||||
|
--trailer="my-trailer: value" --verbose &&
|
||||||
|
{
|
||||||
|
cat msg &&
|
||||||
|
echo &&
|
||||||
|
echo "my-trailer: value"
|
||||||
|
} >expected &&
|
||||||
|
git cat-file commit HEAD >commit.msg &&
|
||||||
|
sed -e "1,/^\$/d" commit.msg >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'multiple -m' '
|
test_expect_success 'multiple -m' '
|
||||||
|
|
||||||
>negative &&
|
>negative &&
|
||||||
|
|
|
@ -1916,4 +1916,23 @@ test_expect_success 'suppress --- handling' '
|
||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'suppressing --- does not disable cut-line handling' '
|
||||||
|
echo "real-trailer: before the cut" >expected &&
|
||||||
|
|
||||||
|
git interpret-trailers --parse --no-divider >actual <<-\EOF &&
|
||||||
|
subject
|
||||||
|
|
||||||
|
This input has a cut-line in it; we should stop parsing when we see it
|
||||||
|
and consider only trailers before that line.
|
||||||
|
|
||||||
|
real-trailer: before the cut
|
||||||
|
|
||||||
|
# ------------------------ >8 ------------------------
|
||||||
|
# Nothing below this line counts as part of the commit message.
|
||||||
|
not-a-trailer: too late
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
15
trailer.c
15
trailer.c
|
@ -845,16 +845,15 @@ static size_t find_end_of_log_message(const char *input, int no_divider)
|
||||||
/* Assume the naive end of the input is already what we want. */
|
/* Assume the naive end of the input is already what we want. */
|
||||||
end = strlen(input);
|
end = strlen(input);
|
||||||
|
|
||||||
if (no_divider)
|
|
||||||
return end;
|
|
||||||
|
|
||||||
/* Optionally skip over any patch part ("---" line and below). */
|
/* Optionally skip over any patch part ("---" line and below). */
|
||||||
for (s = input; *s; s = next_line(s)) {
|
if (!no_divider) {
|
||||||
const char *v;
|
for (s = input; *s; s = next_line(s)) {
|
||||||
|
const char *v;
|
||||||
|
|
||||||
if (skip_prefix(s, "---", &v) && isspace(*v)) {
|
if (skip_prefix(s, "---", &v) && isspace(*v)) {
|
||||||
end = s - input;
|
end = s - input;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue