]> git.ipfire.org Git - thirdparty/git.git/commit
packfile: extend `is_delta` field to allow for "unknown" state
authorPatrick Steinhardt <ps@pks.im>
Mon, 12 Jan 2026 09:00:43 +0000 (10:00 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 12 Jan 2026 14:51:14 +0000 (06:51 -0800)
commit27d9486cbc37a44565e4a97a84089c85741d4cd8
tree2f17c3866a3a329ed6cd1821c1e47e3ca139d4c1
parent7a4bd1b836c7437dfb8ff3650096750b98a6b3e4
packfile: extend `is_delta` field to allow for "unknown" state

The `struct object_info::u::packed::is_delta` field determines whether
or not a specific object is stored as a delta. It only stores whether or
not the object is stored as delta, so it is treated as a boolean value.

This boolean is insufficient though: when reading a packed object via
`packfile_store_read_object_info()` we know to skip parsing the actual
object when the user didn't request any object-specific data. In that
case we won't read the object itself, but will only look up its position
in the packfile. Consequently, we do not know whether it is a delta or
not.

This isn't really an issue right now, as the check for an empty request
is broken. But a subsequent commit will fix it, and once we do we will
have the need to also represent an "unknown" delta state.

Prepare for this change by introducing a new enum that encodes the
object type. We don't use the "unknown" state just yet, but will start
to do so in a subsequent commit.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
odb.h
packfile.c