From 1ee1e43df37e53b0bc50a0eda57dd1772dc220f5 Mon Sep 17 00:00:00 2001 From: Johan Herland Date: Tue, 31 Aug 2010 17:56:50 +0200 Subject: 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 Signed-off-by: Junio C Hamano --- notes.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'notes.h') diff --git a/notes.h b/notes.h index 65fc3a66b2..5106761534 100644 --- a/notes.h +++ b/notes.h @@ -89,8 +89,10 @@ void add_note(struct notes_tree *t, const unsigned char *object_sha1, * IMPORTANT: The changes made by remove_note() to the given notes_tree * structure are not persistent until a subsequent call to write_notes_tree() * returns zero. + * + * Return 0 if a note was removed; 1 if there was no note to remove. */ -void remove_note(struct notes_tree *t, const unsigned char *object_sha1); +int remove_note(struct notes_tree *t, const unsigned char *object_sha1); /* * Get the note object SHA1 containing the note data for the given object -- cgit v1.2.3