Re: [PATCH v2 7/8] midx: replace `get_midx_rev_filename()` with a generic helper
- From
Jeff King <peff@peff.net>
- Date
- May 30, 2024, 07:10 UTC
- Message-ID
- <20240530071057.GC1949834@coredump.intra.peff.net>
- In-Reply-To
- <f4f977c1c71ceed339361e8463bace9edc42ec45.1717023301.git.me@ttaylorr.com>
On Wed, May 29, 2024 at 06:55:42PM -0400, Taylor Blau wrote:
Show 14 quoted lines
> Commit f894081deae (pack-revindex: read multi-pack reverse indexes, > 2021-03-30) introduced the `get_midx_rev_filename()` helper (later > modified by commit 60980aed786 (midx.c: write MIDX filenames to > strbuf, 2021-10-26)). > > This function returns the location of the classic ".rev" files we used > to write for MIDXs (prior to 95e8383bac1 (midx.c: make changing the > preferred pack safe, 2022-01-25)), which is always of the form: > > $GIT_DIR/objects/pack/multi-pack-index-$HASH.rev > > Replace this function with a generic helper that populates a strbuf with > the above form, replacing the ".rev" extension with a caller-provided > argument.
Makes sense, as we have similar routines for packfiles.
Show 13 quoted lines
> +void get_midx_filename_ext(struct strbuf *out, const char *object_dir,
> + const unsigned char *hash, const char *ext)
> {
> strbuf_addf(out, "%s/pack/multi-pack-index", object_dir);
> -}
> -
> -void get_midx_rev_filename(struct strbuf *out, struct multi_pack_index *m)
> -{
> - get_midx_filename(out, m->object_dir);
> - strbuf_addf(out, "-%s.rev", hash_to_hex(get_midx_checksum(m)));
> + if (ext)
> + strbuf_addf(out, "-%s.%s", hash_to_hex(hash), ext);
> }This bare "const unsigned char *hash" caught my eye, as we've mostly been removing them. But it was present in the original, too; it was just hidden in the return from get_midx_checksum().
And I'm not sure what the non-ugly version is. We implicitly use the_hash_algo for these kinds of trailer checksums, and calling them "struct object_id" is probably even more confusing. I guess they could be "struct csum_file_trailer" or something, but I'm not sure that would actually make anything more clear. Anyway, none of this is new in your patch and we can ignore it for now.
-Peff