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_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' '
|
||||
|
||||
>negative &&
|
||||
|
|
|
@ -1916,4 +1916,23 @@ test_expect_success 'suppress --- handling' '
|
|||
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
|
||||
|
|
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. */
|
||||
end = strlen(input);
|
||||
|
||||
if (no_divider)
|
||||
return end;
|
||||
|
||||
/* Optionally skip over any patch part ("---" line and below). */
|
||||
for (s = input; *s; s = next_line(s)) {
|
||||
const char *v;
|
||||
if (!no_divider) {
|
||||
for (s = input; *s; s = next_line(s)) {
|
||||
const char *v;
|
||||
|
||||
if (skip_prefix(s, "---", &v) && isspace(*v)) {
|
||||
end = s - input;
|
||||
break;
|
||||
if (skip_prefix(s, "---", &v) && isspace(*v)) {
|
||||
end = s - input;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue