Skip to main content

Module unpack_objects

Module unpack_objects 

Source
Expand description

unpack-objects: unpack a pack stream into loose objects.

Reads a pack-format byte stream, validates the trailing checksum, and writes each object as a loose file in the object database. Delta objects (both OFS_DELTA and REF_DELTA) are resolved against already-unpacked objects or objects already present in the ODB.

Large blobs are written to the ODB and dropped from the in-memory maps so cloning multi-gigabyte repositories does not require holding the full pack in RAM (streaming read + bounded retention).

Structs§

UnpackOptions
Options controlling unpack-objects behaviour.

Functions§

apply_delta
Apply a git “patch delta” to base, producing the patched result.
pack_bytes_to_object_map
Parse a pack byte stream and return every resolved object (after delta resolution) keyed by OID.
pack_is_thin
Whether data is a thin pack — i.e. it contains a ref-delta (type 7) whose base object is not itself present in the pack. git pack-objects --thin produces such packs; a receiver that rejects thin packs (receive-pack --reject-thin-pack-for-testing) uses this to refuse them.
strict_verify_packed_references
Verifies that references from commits, trees, and tags resolve to objects present in pack or, when odb is Some, to loose objects in that database.
unpack_objects
Unpack a pack stream from reader into odb.