Thread (33 messages) 33 messages, 3 authors, 2026-02-14

Re: [PATCH v4 2/2] repo: add new flag --keys to git-repo-info

From: Patrick Steinhardt <hidden>
Date: 2026-01-20 06:05:55

On Mon, Jan 19, 2026 at 05:20:20PM -0300, Lucas Seiki Oshiro wrote:
quoted hunk ↗ jump to hunk
diff --git a/builtin/repo.c b/builtin/repo.c
index 306d3fa2df..2f698c5253 100644
--- a/builtin/repo.c
+++ b/builtin/repo.c
@@ -29,6 +30,7 @@ enum output_format {
 	FORMAT_TABLE,
 	FORMAT_KEYVALUE,
 	FORMAT_NUL_TERMINATED,
+	FORMAT_LINES
 };
 
 struct field {
Tiny nit: we also tend to terminate the last enum value with a comma.
The reason here is that it makes it easier to add new values going
forward while only having to change one line.
quoted hunk ↗ jump to hunk
@@ -149,6 +151,32 @@ static int print_all_fields(struct repository *repo,
 	return 0;
 }
 
+static int print_keys(enum output_format format)
+{
+	char sep;
+
+	if (format == FORMAT_DEFAULT)
+		format = FORMAT_LINES;
+
+	switch (format) {
+	case FORMAT_LINES:
+		sep = '\n';
+		break;
+	case FORMAT_NUL_TERMINATED:
+		sep = '\0';
+		break;
+	default:
+		die(_("--keys can only be used with --format=default or --format=nul"));
This error message isn't true anymore, as we also support
"--format=lines" now.
quoted hunk ↗ jump to hunk
@@ -162,6 +190,8 @@ static int parse_format_cb(const struct option *opt,
 		*format = FORMAT_KEYVALUE;
 	else if (!strcmp(arg, "table"))
 		*format = FORMAT_TABLE;
+	else if (!strcmp(arg, "lines"))
+		*format = FORMAT_LINES;
 	else if (!strcmp(arg, "default"))
 		*format = FORMAT_DEFAULT;
 	else
You also have to adapt `cmd_repo_structure()` to handle this new vaule.
Otherwise it would `BUG()`. I guess the most reasonable change here
would be to treat "lines" and "keyvalue" as equivalent?

Thanks!

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