• J
    notes: disallow reusing non-blob as a note object · ce8daa1e
    Johan Herland 提交于
    Currently "git notes add -C $object" will read the raw bytes from $object,
    and then copy those bytes into the note object, which is hardcoded to be
    of type blob. This means that if the given $object is a non-blob (e.g.
    tree or commit), the raw bytes from that object is copied into a blob
    object. This is probably not useful, and certainly not what any sane
    user would expect. So disallow it, by erroring out if the $object passed
    to the -C option is not a blob.
    
    The fix also applies to the -c option (in which the user is prompted to
    edit/verify the note contents in a text editor), and also when -c/-C is
    passed to "git notes append" (which appends the $object contents to an
    existing note object). In both cases, passing a non-blob $object does not
    make sense.
    
    Also add a couple of tests demonstrating expected behavior.
    Suggested-by: NJunio C Hamano <gitster@pobox.com>
    Signed-off-by: NJohan Herland <johan@herland.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    ce8daa1e
t3301-notes.sh 30.8 KB