]> git.ipfire.org Git - thirdparty/git.git/commit
builtin/cat-file: introduce function to report object status
authorPatrick Steinhardt <ps@pks.im>
Wed, 2 Apr 2025 11:13:37 +0000 (13:13 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 7 Apr 2025 21:43:49 +0000 (14:43 -0700)
commit1914ae0d706f7811eb9f293ae14ca9eb4f25fcca
tree92370812bcfcec61e5e61cc821bcd3fa8294033e
parent84a1d0039a7d9974d4900d730ba7edeef31b8e43
builtin/cat-file: introduce function to report object status

We have multiple callsites that report the status of an object, for
example when the objec tis missing or its name is ambiguous. We're about
to add a couple more such callsites to report on "excluded" objects.

Prepare for this by introducing a new function `report_object_status()`
that encapsulates the functionality.

Note that this function also flushes stdout, which is a requirement so
that request-response style batched modes can learn about the status
before proceeding to the next object. We already flush correctly at all
existing callsites, even though the flush in `batch_one_object()` only
comes after the switch statement. That flush is now redundant, and we
could in theory deduplicate it by moving it into all branches that don't
use `report_object_status()`. But that doesn't quite feel sensible:

  - The duplicate flush should ultimately just be a no-op for us and
    thus shouldn't impact performance significantly.

  - By keeping the flush in `report_object_status()` we ensure that all
    future callers get semantics correct.

So let's just be pragmatic and live with the duplicated flush.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/cat-file.c