Subject: Re: [GSoC PATCH 2/2] repo: add the field objects.format

From: Junio C Hamano <[email-masked]>
Date: Thu, 21 Aug 2025 12:44:00 -0700

Lucas Seiki Oshiro <[email-masked]> writes:

> The flag `--show-object-format` from git-rev-parse is used for
> retrieving the object storage format. This way, it is used for
> querying repository metadata, fitting in the purpose of git-repo-info.

Yes, and extensions.objectFormat specifies the hash algorithm used
in the repository, extensions.compatObjectFormat specifies a
compatibility algorithm to use.  So objectFormat is a good name to
call this new "repository metadata".

> Add a new field `objects.format` to the git-repo-info subcommand
> containing that information.

Perhaps drop "s" from "objects.format" before it becomes too late?
We may also want to reconsider references.format as that is not in
line with either extensions.refStorage or --ref-format (taken by
'git init' and 'git clone').

Do these keys always have to be two words separated by dots?  I am
asking if there are other keys that would plausibly fit next to this
object.format thing.  object.count to report how many objects there
are in the repository, or things like that, perhaps?

> @@ -49,6 +55,7 @@ static int get_references_format(struct repository *repo, struct strbuf *buf)
>  static const struct field repo_info_fields[] = {
>  	{ "layout.bare", get_layout_bare },
>  	{ "layout.shallow", get_layout_shallow },
> +	{ "objects.format", get_objects_format},
>  	{ "references.format", get_references_format },
>  };