Subject: Re: [PATCH 00/17] odb: make object database sources pluggable

From: Patrick Steinhardt <[email-masked]>
Date: Tue, 24 Feb 2026 09:41:06 +0100

On Mon, Feb 23, 2026 at 01:59:51PM -0800, Junio C Hamano wrote:
> Patrick Steinhardt <[email-masked]> writes:
> 
> > I forgot to note that this series is based on top of 7c02d39fc2 (The 6th
> > batch, 2026-02-20) with the following two series merged into it:
> >
> >   - ps/odb-for-each-object at 3565faf28c (odb: drop unused
> >     `for_each_{loose,packed}_object()` functions, 2026-01-26)
> >
> >   - ps/object-info-bits-cleanup at 732ec9b17b (odb: convert
> >     `odb_has_object()` flags into an enum, 2026-02-12)
> 
> With the above base, [09/17] fails to apply, as the function
> signature of odb_source_loose_read_object_info() no longer has
> "unsigned flags" after "int flags" turns into "enum
> object_info_flags flags" in f6516a5241 (odb: convert object info
> flags into an enum, 2026-02-12).

Indeed. It seems like I mis-resolved the conflict that happens when
those two patch series are merged together. I properly resolved it in
the header, but not in the implementation.

The fun part is that this compiles cleanly with Clang 20. I would have
expected a warning here that the function signatures are different. I
tried to play around with -Weverything, but couldn't get it to produce
the expected warning. Oh, well...

> +++ b/object-file.c
> @@ -543,9 +543,19 @@ static int read_object_info_from_path(struct odb_source *source,
>  int odb_source_loose_read_object_info(struct odb_source *source,
>  				      const struct object_id *oid,
>  				      struct object_info *oi,
> -				      unsigned flags)
> +				      enum object_info_flags flags)
> 
> Tweaking the patch (e.g., "unsigned" -> "enum object_info_flags") to
> make it apply was trivial, so there is no need to resend.  Hopefully
> there is no semantic conflicts due to confused bases (the result
> compiled and linked fine).

Yeah. I'll rebuild my patch series on top of the base that you have
constructed. Thanks!

Patrick