notes.c: Use two newlines (instead of one) when concatenating notes
When using combine_notes_concatenate() to concatenate notes, it currently ensures exactly one newline character between the given notes. However, when using builtin/notes.c:create_note() to concatenate notes (e.g. by 'git notes append'), it adds a newline character to the trailing newline of the preceding notes object, thus resulting in _two_ newlines (aka. a blank line) separating contents of the two notes. This patch brings combine_notes_concatenate() into consistency with builtin/notes.c:create_note(), by ensuring exactly _two_ newline characters between concatenated notes. The patch also changes a few notes-related selftests accordingly. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
32a36b4d6f
commit
d4990c4b2f
7
notes.c
7
notes.c
@ -812,16 +812,17 @@ int combine_notes_concatenate(unsigned char *cur_sha1,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we will separate the notes by a newline anyway */
|
/* we will separate the notes by two newlines anyway */
|
||||||
if (cur_msg[cur_len - 1] == '\n')
|
if (cur_msg[cur_len - 1] == '\n')
|
||||||
cur_len--;
|
cur_len--;
|
||||||
|
|
||||||
/* concatenate cur_msg and new_msg into buf */
|
/* concatenate cur_msg and new_msg into buf */
|
||||||
buf_len = cur_len + 1 + new_len;
|
buf_len = cur_len + 2 + new_len;
|
||||||
buf = (char *) xmalloc(buf_len);
|
buf = (char *) xmalloc(buf_len);
|
||||||
memcpy(buf, cur_msg, cur_len);
|
memcpy(buf, cur_msg, cur_len);
|
||||||
buf[cur_len] = '\n';
|
buf[cur_len] = '\n';
|
||||||
memcpy(buf + cur_len + 1, new_msg, new_len);
|
buf[cur_len + 1] = '\n';
|
||||||
|
memcpy(buf + cur_len + 2, new_msg, new_len);
|
||||||
free(cur_msg);
|
free(cur_msg);
|
||||||
free(new_msg);
|
free(new_msg);
|
||||||
|
|
||||||
|
@ -955,6 +955,7 @@ Date: Thu Apr 7 15:27:13 2005 -0700
|
|||||||
|
|
||||||
Notes (other):
|
Notes (other):
|
||||||
a fresh note
|
a fresh note
|
||||||
|
$whitespace
|
||||||
another fresh note
|
another fresh note
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@ -976,8 +977,11 @@ Date: Thu Apr 7 15:27:13 2005 -0700
|
|||||||
|
|
||||||
Notes (other):
|
Notes (other):
|
||||||
a fresh note
|
a fresh note
|
||||||
|
$whitespace
|
||||||
another fresh note
|
another fresh note
|
||||||
|
$whitespace
|
||||||
append 1
|
append 1
|
||||||
|
$whitespace
|
||||||
append 2
|
append 2
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
@ -173,6 +173,7 @@ verify_concatenated_notes () {
|
|||||||
while [ $i -gt 0 ]; do
|
while [ $i -gt 0 ]; do
|
||||||
echo " commit #$i" &&
|
echo " commit #$i" &&
|
||||||
echo " first note for commit #$i" &&
|
echo " first note for commit #$i" &&
|
||||||
|
echo " " &&
|
||||||
echo " second note for commit #$i" &&
|
echo " second note for commit #$i" &&
|
||||||
i=$(($i-1));
|
i=$(($i-1));
|
||||||
done > expect &&
|
done > expect &&
|
||||||
|
@ -593,6 +593,7 @@ test_expect_success 'rebase -i can copy notes' '
|
|||||||
|
|
||||||
cat >expect <<EOF
|
cat >expect <<EOF
|
||||||
an earlier note
|
an earlier note
|
||||||
|
|
||||||
a note
|
a note
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
@ -255,13 +255,18 @@ EOF
|
|||||||
|
|
||||||
INPUT_END
|
INPUT_END
|
||||||
|
|
||||||
|
whitespace=" "
|
||||||
|
|
||||||
cat >expect <<EXPECT_END
|
cat >expect <<EXPECT_END
|
||||||
fourth commit
|
fourth commit
|
||||||
pre-prefix of note for fourth commit
|
pre-prefix of note for fourth commit
|
||||||
|
$whitespace
|
||||||
prefix of note for fourth commit
|
prefix of note for fourth commit
|
||||||
|
$whitespace
|
||||||
third note for fourth commit
|
third note for fourth commit
|
||||||
third commit
|
third commit
|
||||||
prefix of note for third commit
|
prefix of note for third commit
|
||||||
|
$whitespace
|
||||||
third note for third commit
|
third note for third commit
|
||||||
second commit
|
second commit
|
||||||
third note for second commit
|
third note for second commit
|
||||||
|
Reference in New Issue
Block a user