From: Justin Tobler <jltobler@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Luca Stefani <luca.stefani.ge1@gmail.com>,
git@vger.kernel.org, cat@malon.dev
Subject: Re: [PATCH] object-file: don't use object database without a repository
Date: Mon, 6 Apr 2026 15:38:05 -0500 [thread overview]
Message-ID: <adQYS_ThpOzxCLTi@denethor> (raw)
In-Reply-To: <20260406200651.GA26091@coredump.intra.peff.net>
On 26/04/06 04:06PM, Jeff King wrote:
> On Mon, Apr 06, 2026 at 01:17:17PM -0500, Justin Tobler wrote:
>
> > I agree with Peff here that the correct fix should continue to use the
> > object streaming mechanisms. To avoid this segfault, we really should
> > avoid using ODB transactions when there isn't an ODB in the first place.
> >
> > I replied in another thread[1] with how we could go about fixing. To
> > summarize, it just so happens that I already have a patch[2] out on the
> > list that appears to resolve this issue.
> >
> > For the use case here, git-diff(1) is only interested in generating the
> > hash for the "large" blobs and not actually writing anything to the ODB.
> > This patch introduces a separate "hash-only" variant of
> > `index_blob_packfile_transaction()` and is used to bypass creating an
> > ODB transaction when object writes are not needed.
> >
> > If this is the route we want to go down, I can extract this patch from
> > the current series and send it as a separate fix. :)
>
> Yeah, I think this is a good path forward. I took a look at making the
> transaction begin/end conditional, but that's not nearly enough anymore.
> The transaction object stores state which is used under the hood by
> index_blob_packfile_transaction(). So we'd really need some kind of fake
> noop transaction that understands how to stream.
>
> Just having the caller divert to a "hash this without having an odb"
> interface is way simpler (especially since this is the only spot that
> needs it, so we are only paying the price once either way).
>
> I gave a cursory look at the patch you linked. For a maint fix like this
> I think we could probably slim it down a bit: introduce the new
> hash-only helper but _don't_ actually rip flag support out of
> index_blob_packfile_transaction(), so we know that we can't accidentally
> break it. Though maybe that is being overly cautious; it only has one
> caller, and that caller would no longer be passing in any meaningful
> flags.
Ya, I think slimming down the patch probably makes sense. I'll start
working on it and make sure to include some tests too. :)
Thanks,
-Justin
prev parent reply other threads:[~2026-04-06 20:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-04 17:28 [PATCH] object-file: don't use object database without a repository Luca Stefani
2026-04-05 6:03 ` Pushkar Singh
2026-04-05 6:46 ` Jeff King
2026-04-05 16:10 ` Luca Stefani
2026-04-05 19:17 ` Jeff King
2026-04-06 18:17 ` Justin Tobler
2026-04-06 19:31 ` Luca Stefani
2026-04-06 20:31 ` Justin Tobler
2026-04-06 20:06 ` Jeff King
2026-04-06 20:38 ` Justin Tobler [this message]
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=adQYS_ThpOzxCLTi@denethor \
--to=jltobler@gmail.com \
--cc=cat@malon.dev \
--cc=git@vger.kernel.org \
--cc=luca.stefani.ge1@gmail.com \
--cc=peff@peff.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox