All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	Elijah Newren <newren@gmail.com>,
	Justin Tobler <jltobler@gmail.com>
Subject: Re: [PATCH v3 1/6] odb: introduce interface to generate packfiles
Date: Thu, 20 Aug 2026 13:38:50 +0200	[thread overview]
Message-ID: <aobnSsQVOCSoR4kE@pks.im> (raw)
In-Reply-To: <CAOLa=ZSYyfOCs8Dr0Xdhv-=Q=j0z7vtfYqopDb07XuAm2PU84g@mail.gmail.com>

On Thu, Aug 20, 2026 at 03:16:37AM -0700, Karthik Nayak wrote:
> Patrick Steinhardt <ps@pks.im> writes:
> > diff --git a/odb/source.h b/odb/source.h
> > index d69f8e2d1c..e2129766fc 100644
> > --- a/odb/source.h
> > +++ b/odb/source.h
> > @@ -278,6 +278,23 @@ struct odb_source {
> >  	 */
> >  	bool (*optimize_required)(struct odb_source *source,
> >  				  const struct odb_optimize_options *opts);
> > +
> > +	/*
> > +	 * This callback is expected to start generating a packfile with the
> > +	 * given options. The pack shall be generated asynchronously so that
> > +	 * the caller can consume the pack data and progress output while the
> > +	 * pack is being generated.
> > +	 *
> > +	 * This callback is optional. Sources that cannot generate packfiles
> > +	 * shall leave it unset.
> > +	 *
> > +	 * The callback is expected to return 0 on success and populate the
> > +	 * `out` pointer with the pack generator, a negative error code
> > +	 * otherwise.
> > +	 */
> > +	int (*generate_pack)(struct odb_source *source,
> > +			     struct odb_pack_generator **out,
> > +			     const struct odb_generate_pack_options *opts);
> >  };
> >
> 
> Nit: I see that `source` is unused anyways, do we need to pass it in? Or
> is just for consistency?

Our specific implementation does not use it, but others might want. So
it's mostly for consistency to give the callback enough context.

Patrick

  reply	other threads:[~2026-08-20 11:38 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-07 10:45 [PATCH 0/5] odb: make packfile generation pluggable Patrick Steinhardt
2026-08-07 10:45 ` [PATCH 1/5] odb: introduce interface to generate packfiles Patrick Steinhardt
2026-08-07 10:45 ` [PATCH 2/5] upload-pack: generate packfiles via the object database Patrick Steinhardt
2026-08-07 10:45 ` [PATCH 3/5] send-pack: " Patrick Steinhardt
2026-08-07 10:45 ` [PATCH 4/5] builtin/bundle: refactor option handling for progress meter Patrick Steinhardt
2026-08-07 10:45 ` [PATCH 5/5] bundle: generate packfiles via the object database Patrick Steinhardt
2026-08-13 18:00   ` Junio C Hamano
2026-08-14  7:40     ` Patrick Steinhardt
2026-08-07 21:05 ` [PATCH 0/5] odb: make packfile generation pluggable Junio C Hamano
2026-08-10  5:25   ` Patrick Steinhardt
2026-08-12 23:41     ` Taylor Blau
2026-08-13  5:47       ` Patrick Steinhardt
2026-08-13 17:35         ` Junio C Hamano
2026-08-17  5:39 ` [PATCH v2 0/6] " Patrick Steinhardt
2026-08-17  5:39   ` [PATCH v2 1/6] odb: introduce interface to generate packfiles Patrick Steinhardt
2026-08-19 16:56     ` Elijah Newren
2026-08-20  6:01       ` Patrick Steinhardt
2026-08-17  5:39   ` [PATCH v2 2/6] upload-pack: generate packfiles via the object database Patrick Steinhardt
2026-08-17  5:39   ` [PATCH v2 3/6] send-pack: " Patrick Steinhardt
2026-08-17  5:39   ` [PATCH v2 4/6] builtin/bundle: refactor option handling for progress meter Patrick Steinhardt
2026-08-17  5:39   ` [PATCH v2 5/6] bundle: get (mostly) rid of `the_repository` Patrick Steinhardt
2026-08-17 16:47     ` Junio C Hamano
2026-08-18  5:26       ` Patrick Steinhardt
2026-08-17  5:39   ` [PATCH v2 6/6] bundle: generate packfiles via the object database Patrick Steinhardt
2026-08-19 21:52     ` Justin Tobler
2026-08-20  6:01       ` Patrick Steinhardt
2026-08-20  7:55 ` [PATCH v3 0/6] odb: make packfile generation pluggable Patrick Steinhardt
2026-08-20  7:55   ` [PATCH v3 1/6] odb: introduce interface to generate packfiles Patrick Steinhardt
2026-08-20 10:16     ` Karthik Nayak
2026-08-20 11:38       ` Patrick Steinhardt [this message]
2026-08-20  7:55   ` [PATCH v3 2/6] upload-pack: generate packfiles via the object database Patrick Steinhardt
2026-08-20 10:24     ` Karthik Nayak
2026-08-20 11:38       ` Patrick Steinhardt
2026-08-20  7:55   ` [PATCH v3 3/6] send-pack: " Patrick Steinhardt
2026-08-20  7:55   ` [PATCH v3 4/6] builtin/bundle: refactor option handling for progress meter Patrick Steinhardt
2026-08-20 11:17     ` Karthik Nayak
2026-08-20  7:55   ` [PATCH v3 5/6] bundle: get (mostly) rid of `the_repository` Patrick Steinhardt
2026-08-20  7:55   ` [PATCH v3 6/6] bundle: generate packfiles via the object database Patrick Steinhardt
2026-08-20 11:19     ` Karthik Nayak
2026-08-20 11:38       ` Patrick Steinhardt
2026-08-20 11:20   ` [PATCH v3 0/6] odb: make packfile generation pluggable Karthik Nayak
2026-08-20 11:40     ` Patrick Steinhardt

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=aobnSsQVOCSoR4kE@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jltobler@gmail.com \
    --cc=karthik.188@gmail.com \
    --cc=newren@gmail.com \
    /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.