Thread (178 messages) 178 messages, 10 authors, 2025-08-16

Re: [GSoC RFC PATCH v4 2/4] repo: add the field references.format

From: Patrick Steinhardt <hidden>
Date: 2025-07-17 13:03:23

On Wed, Jul 16, 2025 at 09:04:40AM -0500, Justin Tobler wrote:
On 25/07/16 07:38AM, Patrick Steinhardt wrote:
quoted
On Tue, Jul 15, 2025 at 02:15:07PM -0500, Justin Tobler wrote:
quoted
Also, as mentioned in a comment for the previous patch, maybe we should
support printing two output modes. For the default output, maybe a
simple `<key>=<value>\n` where the any value containing special
characters is quoted via `quote_c_style()`.

A null-terminated output, such as the one proposed in this patch, could
be enabled via a `-z` flag similar to how its done in other commands.
Agreed in general, but instead of using `-z` I wonder whether it would
make sense to use something like `--format=key-value` and `--format=nul`
instead. This gives us more room to introduce additional formats in the
future, like for example the JSON format that was scrapped for now.
If we already plan to support additional output formats, they I agree we
should probably a `--format=<output-type>` flag from the start. I still
think it would be nice to have a `-z` flag that is shorthand for
`--format=nul` though as that is fairly common across other commands to
have such an option.

Out of curiousity, is there a reason we are interested in supporting a
JSON output format in addition to what is already proposed? From an
earlier conversation I had with Lucas, it didn't seem like there was any
particular reason for JSON.
I don't care much about the JSON output format. What I do care about is
to have a default format that we are free to iterate on, especially in
the context of `git repo size`. If we ever want to have output that is
as user friendly as git-sizer(1)'s we need to have that freedom.

From my perspective that necessitates two things:

  - That we are able to change formats with a proper `--format=` flag.
    `-z` alone doesn't fit that bill, as we are already talking about
    there formats: user friendly, key-value pairs, and key-value pairs
    with NUL termination.

    That being said I'm not opposed to also have `-z` as an alias as
    long as we also have `--format=`.

  - That the _default_ format is the user friendly format that we can
    iterate on, at least for `git repo size`. Otherwise we have already
    failed on our mission to supply a user-friendly alternative to
    git-sizer(1).

Patrick
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help