Skip to content
  • Johan Herland's avatar
    notes.h/c: Allow combine_notes functions to remove notes · e2656c82
    Johan Herland authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Allow combine_notes functions to request that a note be removed, by setting
    the resulting note SHA1 to null_sha1 (0000000...).
    
    For consistency, also teach note_tree_insert() to skip insertion of an empty
    note (a note with entry->val_sha1 equal to null_sha1) when there is no note
    to combine it with.
    
    In general, an empty note (null_sha1) is treated identically to no note at
    all, but when adding an empty note where there already exists a non-empty
    note, we allow the combine_notes function to potentially record a new/changed
    note. Document this behaviour, and clearly specify how combine_notes functions
    are expected to handle null_sha1 in input.
    
    Before this patch, storing null_sha1s in the notes tree were silently allowed,
    causing an invalid notes tree (referring to blobs with null_sha1) to be
    produced by write_notes_tree().
    
    Signed-off-by: default avatarJohan Herland <johan@herland.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    e2656c82