Re: [PATCH 1/4] odb: store ODB source in `struct odb_transaction`
- From
Justin Tobler <jltobler@gmail.com>
- Date
- Jan 29, 2026, 19:30 UTC
- Message-ID
- <aXu1IDsaUbmUzHop@denethor>
- In-Reply-To
- <aXtDYY0Ao24Mpgyb@pks.im>
On 26/01/29 12:24PM, Patrick Steinhardt wrote:
Show 26 quoted lines
> On Wed, Jan 28, 2026 at 05:45:16PM -0600, Justin Tobler wrote: > > diff --git a/object-file.c b/object-file.c > > index e7e4c3348f..196509b252 100644 > > --- a/object-file.c > > +++ b/object-file.c > > @@ -728,7 +728,7 @@ static void prepare_loose_object_transaction(struct odb_transaction *transaction > > if (!transaction || transaction->objdir) > > return; > > > > - transaction->objdir = tmp_objdir_create(transaction->odb->repo, "bulk-fsync"); > > + transaction->objdir = tmp_objdir_create(transaction->source->odb->repo, "bulk-fsync"); > > if (transaction->objdir) > > tmp_objdir_replace_primary_odb(transaction->objdir, 0); > > } > > This makes me wonder whether we should first refactor the `tmp_objdir` > subsystem to receive a source instead of a repository as input. > Otherwise we "pretend" that the transaction is on the source level, but > we ultimately still end up creating the temporary directory in the > repository's object directory unconditionally. > > It wouldn't really change anything right now as we only ever write > objects via the primary object source anyway, so the end result would be > the same. But it just feels like a good first step to me to fix this > conceptual inconsistency, and it shouldn't be too involved either as > `tmp_objdir_create()` only has three callsites.
Ya this seems reasonable and I agree that it makes sense to do as a first step. In the next version I'll make this change in a prepatory commit.
-Justin