All of lore.kernel.org
 help / color / mirror / Atom feed
From: Justin Tobler <jltobler@gmail.com>
To: Patrick Steinhardt <ps@pks.im>
Cc: git@vger.kernel.org, Karthik Nayak <karthik.188@gmail.com>
Subject: Re: [PATCH v2 07/17] odb/source-packed: wire up `reprepare()` callback
Date: Tue, 16 Jun 2026 16:53:38 -0500	[thread overview]
Message-ID: <ajHDm_pG3Ckca4mp@denethor> (raw)
In-Reply-To: <20260609-pks-odb-source-packed-v2-7-839089132c8b@pks.im>

On 26/06/09 10:51AM, Patrick Steinhardt wrote:
> Move the logic to prepare and reprepare the "packed" source into
> "odb/source-packed.c" and wire it up as the `reprepare()` callback.
> 
> Note that "preparing" a source is not yet generic. Eventually, it would
> probably make sense to turn the existing `reprepare()` callback into a
> `prepare()` callback with an optional flag to force re-preparing. But
> this step will be handled in a separate patch series.

I do find the prepare vs reprepare semantics a bit confusing. The
mentioned change above would be nice to see in the future. :)

> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
[snip]
>  static void odb_source_packed_reparent(const char *name UNUSED,
>  				       const char *old_cwd,
>  				       const char *new_cwd,
> @@ -58,6 +214,7 @@ struct odb_source_packed *odb_source_packed_new(struct odb_source_files *parent)
>  
>  	packed->base.free = odb_source_packed_free;
>  	packed->base.close = odb_source_packed_close;
> +	packed->base.reprepare = odb_source_packed_reprepare;

We moved `packfile_store_reprepare()` logic into "odb/source-packed.c"
and setup the callback making it accessible via `odb_source_reprepare()`
instead. Makes sense.

>  	if (!is_absolute_path(parent->base.path))
>  		chdir_notify_register(NULL, odb_source_packed_reparent, packed);
> diff --git a/odb/source-packed.h b/odb/source-packed.h
> index 68e64cabab..9d4796261a 100644
> --- a/odb/source-packed.h
> +++ b/odb/source-packed.h
> @@ -81,4 +81,13 @@ static inline struct odb_source_packed *odb_source_packed_downcast(struct odb_so
>  	return container_of(source, struct odb_source_packed, base);
>  }
>  
> +/*
> + * Prepare the source by loading packfiles and multi-pack indices for
> + * all alternates. This becomes a no-op if the source is already prepared.
> + *
> + * It shouldn't typically be necessary to call this function directly, as
> + * functions that access the source know to prepare it.
> + */
> +void odb_source_packed_prepare(struct odb_source_packed *source);

The logic for `packfile_store_prepare()` is also moved into
"odb/source-packed.c" and made accessible this function since there
isn't a matching callback.

The other changes are mostly 1:1 moves of associated logic and callsite
updates. Looks good.

-Justin

  reply	other threads:[~2026-06-16 21:53 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-04 11:25 [PATCH 00/16] odb: make packed object source a proper `struct odb_source` Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 01/16] packfile: rename `struct packfile_store` to `odb_source_packed` Patrick Steinhardt
2026-06-05 14:25   ` Karthik Nayak
2026-06-08  6:23     ` Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 02/16] packfile: move packed source into "odb/" subsystem Patrick Steinhardt
2026-06-08 15:09   ` Karthik Nayak
2026-06-09  7:27     ` Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 03/16] odb/source-packed: store pointer to "files" instead of generic source Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 04/16] odb/source-packed: start converting to a proper `struct odb_source` Patrick Steinhardt
2026-06-08 15:29   ` Karthik Nayak
2026-06-09  7:27     ` Patrick Steinhardt
2026-06-09 10:47       ` Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 05/16] odb/source-packed: wire up `close()` callback Patrick Steinhardt
2026-06-08 15:31   ` Karthik Nayak
2026-06-04 11:25 ` [PATCH 06/16] odb/source-packed: wire up `reprepare()` callback Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 07/16] packfile: use higher-level interface to implement `has_object_pack()` Patrick Steinhardt
2026-06-08 16:07   ` Karthik Nayak
2026-06-04 11:25 ` [PATCH 08/16] odb/source-packed: wire up `read_object_info()` callback Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 09/16] odb/source-packed: wire up `read_object_stream()` callback Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 10/16] odb/source-packed: wire up `for_each_object()` callback Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 11/16] odb/source-packed: wire up `count_objects()` callback Patrick Steinhardt
2026-06-08 16:12   ` Karthik Nayak
2026-06-09  7:27     ` Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 12/16] odb/source-packed: wire up `find_abbrev_len()` callback Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 13/16] odb/source-packed: wire up `freshen_object()` callback Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 14/16] odb/source-packed: stub out remaining functions Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 15/16] midx: refactor interfaces to work on "packed" source Patrick Steinhardt
2026-06-04 11:25 ` [PATCH 16/16] odb/source-packed: drop pointer to "files" parent source Patrick Steinhardt
2026-06-08 16:15 ` [PATCH 00/16] odb: make packed object source a proper `struct odb_source` Karthik Nayak
2026-06-09  7:27   ` Patrick Steinhardt
2026-06-09  8:50 ` [PATCH v2 00/17] " Patrick Steinhardt
2026-06-09  8:50   ` [PATCH v2 01/17] packfile: rename `struct packfile_store` to `odb_source_packed` Patrick Steinhardt
2026-06-16 21:01     ` Justin Tobler
2026-06-09  8:50   ` [PATCH v2 02/17] packfile: split out packfile list logic Patrick Steinhardt
2026-06-09  8:50   ` [PATCH v2 03/17] packfile: move packed source into "odb/" subsystem Patrick Steinhardt
2026-06-09  8:50   ` [PATCH v2 04/17] odb/source-packed: store pointer to "files" instead of generic source Patrick Steinhardt
2026-06-16 21:14     ` Justin Tobler
2026-06-16 21:28       ` Justin Tobler
2026-06-09  8:50   ` [PATCH v2 05/17] odb/source-packed: start converting to a proper `struct odb_source` Patrick Steinhardt
2026-06-16 21:36     ` Justin Tobler
2026-06-09  8:50   ` [PATCH v2 06/17] odb/source-packed: wire up `close()` callback Patrick Steinhardt
2026-06-09  8:51   ` [PATCH v2 07/17] odb/source-packed: wire up `reprepare()` callback Patrick Steinhardt
2026-06-16 21:53     ` Justin Tobler [this message]
2026-06-09  8:51   ` [PATCH v2 08/17] packfile: use higher-level interface to implement `has_object_pack()` Patrick Steinhardt
2026-06-09  8:51   ` [PATCH v2 09/17] odb/source-packed: wire up `read_object_info()` callback Patrick Steinhardt
2026-06-09  8:51   ` [PATCH v2 10/17] odb/source-packed: wire up `read_object_stream()` callback Patrick Steinhardt
2026-06-09  8:51   ` [PATCH v2 11/17] odb/source-packed: wire up `for_each_object()` callback Patrick Steinhardt
2026-06-16 22:10     ` Justin Tobler
2026-06-09  8:51   ` [PATCH v2 12/17] odb/source-packed: wire up `count_objects()` callback Patrick Steinhardt
2026-06-09  8:51   ` [PATCH v2 13/17] odb/source-packed: wire up `find_abbrev_len()` callback Patrick Steinhardt
2026-06-09  8:51   ` [PATCH v2 14/17] odb/source-packed: wire up `freshen_object()` callback Patrick Steinhardt
2026-06-09  8:51   ` [PATCH v2 15/17] odb/source-packed: stub out remaining functions Patrick Steinhardt
2026-06-09  8:51   ` [PATCH v2 16/17] midx: refactor interfaces to work on "packed" source Patrick Steinhardt
2026-06-16 22:37     ` Justin Tobler
2026-06-09  8:51   ` [PATCH v2 17/17] odb/source-packed: drop pointer to "files" parent source Patrick Steinhardt
2026-06-16 22:51     ` Justin Tobler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ajHDm_pG3Ckca4mp@denethor \
    --to=jltobler@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=karthik.188@gmail.com \
    --cc=ps@pks.im \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.