diff options
author | Johan Herland <johan@herland.net> | 2010-11-09 22:49:44 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-11-17 13:21:29 -0800 |
commit | d4990c4b2f5f7066853fea4df775b3f506c79431 (patch) | |
tree | af48a3a32d0a8450f8ad53528a10f20e4bdfaaa5 | |
parent | 32a36b4d6f3207f5c01e928085b13af87bf223a1 (diff) | |
download | git-d4990c4b2f5f7066853fea4df775b3f506c79431.tar.gz |
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>
-rw-r--r-- | notes.c | 7 | ||||
-rwxr-xr-x | t/t3301-notes.sh | 4 | ||||
-rwxr-xr-x | t/t3303-notes-subtrees.sh | 1 | ||||
-rwxr-xr-x | t/t3404-rebase-interactive.sh | 1 | ||||
-rwxr-xr-x | t/t9301-fast-import-notes.sh | 5 |
5 files changed, 15 insertions, 3 deletions
@@ -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); diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh index 1d82f79ee0..4bf4e52e6c 100755 --- a/t/t3301-notes.sh +++ b/t/t3301-notes.sh @@ -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 diff --git a/t/t3303-notes-subtrees.sh b/t/t3303-notes-subtrees.sh index d571708ff2..704aee81ef 100755 --- a/t/t3303-notes-subtrees.sh +++ b/t/t3303-notes-subtrees.sh @@ -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 && diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 9f03ce699e..9ed70dc7eb 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -593,6 +593,7 @@ test_expect_success 'rebase -i can copy notes' ' cat >expect <<EOF an earlier note + a note EOF diff --git a/t/t9301-fast-import-notes.sh b/t/t9301-fast-import-notes.sh index a5c99d8507..7cf8cd8a2f 100755 --- a/t/t9301-fast-import-notes.sh +++ b/t/t9301-fast-import-notes.sh @@ -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 |