Subject: Re: [PATCH v3 0/7] odb: add write operation to ODB transaction interface

From: Patrick Steinhardt <[email-masked]>
Date: Wed, 8 Apr 2026 09:25:41 +0200

On Thu, Apr 02, 2026 at 04:32:13PM -0500, Justin Tobler wrote:
> Greetings,
> 
> This series lays the groundwork for introducing write operations to the
> ODB transaction interface. The eventual goal is for all object writes
> performed within a transaction to go through this interface explicitly,
> rather than implicitly relying on the transaction to reconfigure ODB
> sources so that writes are redirected to a temporary location.
> 
> For now, only `odb_transaction_write_object_stream()` is implemented and
> wires up the existing logic for streaming "large" blobs directly into a
> packfile as part of the transaction.
> 
> Most of the patches are structural refactorings to enable this, but
> patch 4 introduces a behavioral change in how packfiles that would
> exceed "pack.packSizeLimit" are handled.
> 
> Changes since V2:
> - Renamed some variables to improve clarity
> - Make `odb_write_stream_from_fd()` fully initialize the underlying
>   `struct odb_write_stream`
> - Move `struct odb_write_stream` to "odb/streaming.h"
> - Make the `hash_blob_stream()` helper more generic by operating on a
>   `struct odb_write_stream` instead of reading from an fd directly.
> - Introduce an `odb_write_stream_release()` helper to free the
>   underlying stream data.

All these changes here look sensible to me, and the range-diff does,
too. I'm happy with the state of this series, thanks!

Patrick