notes: Don't create (empty) commit when removing non-existing notes

Extend remove_note() in the notes API to return whether or not a note was
actually removed. Use this in 'git notes remove' to skip the creation of
a notes commit when no notes were actually removed.

Also add a test illustrating the change in behavior.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johan Herland
2010-08-31 17:56:50 +02:00
committed by Junio C Hamano
parent d8a9480384
commit 1ee1e43df3
4 changed files with 30 additions and 9 deletions

View File

@ -365,6 +365,13 @@ c18dc024e14f08d18d14eea0d747ff692d66d6a3 1584215f1d29c65e99c6c6848626553fdd07fd7
c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061 268048bfb8a1fb38e703baceb8ab235421bf80c5
EOF
test_expect_success 'removing non-existing note should not create new commit' '
git rev-parse --verify refs/notes/commits > before_commit &&
test_must_fail git notes remove HEAD^ &&
git rev-parse --verify refs/notes/commits > after_commit &&
test_cmp before_commit after_commit
'
test_expect_success 'list notes with "git notes list"' '
git notes list > output &&
test_cmp expect output