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