]> git.ipfire.org Git - thirdparty/git.git/commitdiff
reflog expire: don't use lookup_commit_reference_gently()
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Wed, 22 Dec 2021 04:06:45 +0000 (05:06 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 23 Dec 2021 00:24:13 +0000 (16:24 -0800)
In the initial implementation of "git reflog" in 4264dc15e19 (git
reflog expire, 2006-12-19) we had this
lookup_commit_reference_gently().

I don't think we've ever found tags that we need to recursively
dereference in reflogs, so this should at least be changed to a
"lookup commit" as I'm doing here, although I can't think of a way
where it mattered in practice.

I also think we'd probably like to just die here if we have a NULL
object, but as this code needs to handle potentially broken
repositories let's just show an "error" but continue, the non-quiet
lookup_commit() will do for us. None of our tests cover the case where
"commit" is NULL after this lookup.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/reflog.c

index f18a63751f378d91dfd82d52f0209dc5f568fb79..fe0bd353829a5e55155d09bc8a3f7d4168ff7781 100644 (file)
@@ -359,8 +359,7 @@ static void reflog_expiry_prepare(const char *refname,
        if (!cb->cmd.expire_unreachable || is_head(refname)) {
                cb->unreachable_expire_kind = UE_HEAD;
        } else {
-               commit = lookup_commit_reference_gently(the_repository,
-                                                       oid, 1);
+               commit = lookup_commit(the_repository, oid);
                cb->unreachable_expire_kind = commit ? UE_NORMAL : UE_ALWAYS;
        }