Subject: Re: [GSoC PATCH v5 1/5] repo: declare the repo command

From: Lucas Seiki Oshiro <[email-masked]>
Date: Wed, 23 Jul 2025 13:28:47 -0300

> I also wonder who it helps to use <LF> as a field separator.

Do you mean the <LF> between the field and the value? If so, it was the
format suggested by Phillip [1]. I accepted the suggestion because:

1. It's easy to be parsed
2. It's easy to write (then I could drop the json_write stuff)
3. It's already used by an existing command (git-config)

> Once we require consumers to properly handle <NUL>, it does not make
> it easier to write such a consumer script if the format uses <LF>
> there, does it?

Not much... Since the keys contain only letters and dots, any other
character would work here, but I wanted to be consistent with
something that already exists.

However, to the best of my knowledge, we have several null-terminated
commands (git ls-files -z, git status -z, git ls-tree -z, etc), but
few commands that use LF as a key-value separator (I only remember
git config -z).

> Besides, wouldn't it possible that field may have to contain any
> end-user specified key, including <LF>?

In `repo info`, no. This way, it's safe to parse everything before
the first <LF> as the key and everything between <LF> and <NUL> as
the value.

The value may contain a <LF>, however, the first <LF> would still
be the separator.

Thanks!

[1] https://lore.kernel.org/git/[email-masked]/