]> git.ipfire.org Git - thirdparty/git.git/commit - refs.h
delete_ref: accept a reflog message argument
authorKyle Meyer <kyle@kyleam.com>
Tue, 21 Feb 2017 01:10:32 +0000 (20:10 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 21 Feb 2017 06:04:47 +0000 (22:04 -0800)
commit755b49ae965c9d17d91fbe7902050428f366bf69
tree9fa000d28733ed4dd38cc5c67e85c24489383d39
parent20769079d22a9f8010232bdf6131918c33a1bf69
delete_ref: accept a reflog message argument

When the current branch is renamed with 'git branch -m/-M' or deleted
with 'git update-ref -m<msg> -d', the event is recorded in HEAD's log
with an empty message.  In preparation for adding a more meaningful
message to HEAD's log in these cases, update delete_ref() to take a
message argument and pass it along to ref_transaction_delete().
Modify all callers to pass NULL for the new message argument; no
change in behavior is intended.

Note that this is relevant for HEAD's log but not for the deleted
ref's log, which is currently deleted along with the ref.  Even if it
were not, an entry for the deletion wouldn't be present in the deleted
ref's log.  files_transaction_commit() writes to the log if
REF_NEEDS_COMMIT or REF_LOG_ONLY are set, but lock_ref_for_update()
doesn't set REF_NEEDS_COMMIT for the deleted ref because REF_DELETING
is set.  In contrast, the update for HEAD has REF_LOG_ONLY set by
split_head_update(), resulting in the deletion being logged.

Signed-off-by: Kyle Meyer <kyle@kyleam.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 files changed:
builtin/am.c
builtin/branch.c
builtin/notes.c
builtin/remote.c
builtin/replace.c
builtin/reset.c
builtin/symbolic-ref.c
builtin/tag.c
builtin/update-ref.c
fast-import.c
refs.c
refs.h
refs/files-backend.c
transport.c