зеркало из https://github.com/microsoft/git.git
reflog: don't be noisy on empty reflogs
Fix a regression in my daf1d8285e
(reflog expire: don't use
lookup_commit_reference_gently(), 2021-12-22), in changing from
lookup_commit_reference_gently() to lookup_commit() we stopped trying
to call deref_tag() and parse_object() on the provided OID, but we
also started returning non-NULL for the null_oid().
As a result we'd emit an error() via mark_reachable() later in this
function as we tried to invoke parse_commit() on it.
Reported-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Tested-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
fcd2c3d9d8
Коммит
57be9c6dee
|
@ -382,6 +382,8 @@ static void reflog_expiry_prepare(const char *refname,
|
|||
cb->unreachable_expire_kind = UE_HEAD;
|
||||
} else {
|
||||
commit = lookup_commit(the_repository, oid);
|
||||
if (commit && is_null_oid(&commit->object.oid))
|
||||
commit = NULL;
|
||||
cb->unreachable_expire_kind = commit ? UE_NORMAL : UE_ALWAYS;
|
||||
}
|
||||
|
||||
|
|
|
@ -422,4 +422,13 @@ test_expect_success 'expire with multiple worktrees' '
|
|||
)
|
||||
'
|
||||
|
||||
test_expect_success REFFILES 'empty reflog' '
|
||||
test_when_finished "rm -rf empty" &&
|
||||
git init empty &&
|
||||
test_commit -C empty A &&
|
||||
>empty/.git/logs/refs/heads/foo &&
|
||||
git -C empty reflog expire --all 2>err &&
|
||||
test_must_be_empty err
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче