{"thread":{"id":"66563","subject":"[Outreachy][PATCH v2] builtin/var: refactor to use parse-options API","startedAt":"2026-10-17T00:54:03Z","lastAt":"2026-10-17T12:20:44Z","messageCount":4,"participants":["Keryle","kerylefondji7@gmail.com","Kristoffer Haugsbakk"],"isPatch":true,"patchVersion":2,"patchTotal":null},"messages":[{"id":"555293","messageId":"20261017005403.5397-1-kerylefondji7@gmail.com","threadId":"66563","inReplyTo":"1a146af667a8bcd4","subject":"[Outreachy][PATCH v2] builtin/var: refactor to use parse-options API","fromName":"Keryle","fromEmail":"kerylefondji7@gmail.com","sentAt":"2026-10-17T00:54:03Z","receivedAt":"2026-10-17T00:54:03Z","isPatch":true,"sender":{"key":"kerylefondji7@gmail.com","avatar":null},"body":"From: keryle <kerylefondji7@gmail.com>\n\nMigrate option handling in 'git var' to the parse-options API.\nThis update also aligns variable resolution with current Git configuration\nand attribute handling.\n\nSigned-off-by: Keryle <keryle@DESKTOP-0SUCFI3>\n\n---\nRange-diff against v1:\n- Fixed whitespace damage and replaced space-indentation with proper tabs.\n- Removed redundant inline comments as suggested.\n- Enforced mutual exclusivity between '-l' and positional arguments.\n- Aligned variable resolution with Git configuration and attribute handling.\n\n builtin/var.c | 32 +++++++++++++++++++++++---------\n 1 file changed, 23 insertions(+), 9 deletions(-)\n\ndiff --git a/builtin/var.c b/builtin/var.c\nindex cc3a43cde2..b9234a55eb 100644\n--- a/builtin/var.c\n+++ b/builtin/var.c\n@@ -3,11 +3,9 @@\n  *\n  * Copyright (C) Eric Biederman, 2005\n  */\n-\n #define USE_THE_REPOSITORY_VARIABLE\n \n #include \"builtin.h\"\n-\n #include \"attr.h\"\n #include \"config.h\"\n #include \"editor.h\"\n@@ -18,8 +16,12 @@\n #include \"path.h\"\n #include \"strbuf.h\"\n #include \"run-command.h\"\n+#include \"parse-options.h\"\n \n-static const char var_usage[] = \"git var (-l | <variable>)\";\n+static const char * const var_usage[] = {\n+\tN_(\"git var (-l | <variable>)\"),\n+\tNULL\n+};\n \n static char *committer(int ident_flag)\n {\n@@ -120,6 +122,7 @@ struct git_var {\n \tchar *(*read)(int);\n \tint multivalued;\n };\n+\n static struct git_var git_vars[] = {\n \t{\n \t\t.name = \"GIT_COMMITTER_IDENT\",\n@@ -221,21 +224,32 @@ int cmd_var(int argc,\n {\n \tconst struct git_var *git_var;\n \tchar *val;\n+\tint list = 0;\n \n-\tshow_usage_if_asked(argc, argv, var_usage);\n-\tif (argc != 2)\n-\t\tusage(var_usage);\n+\tstruct option builtin_var_options[] = {\n+\t\tOPT_BOOL('l', \"list\", &list, N_(\"list builtin variables\")),\n+\t\tOPT_END()\n+\t};\n \n-\tif (strcmp(argv[1], \"-l\") == 0) {\n+\targc = parse_options(argc, argv, prefix, builtin_var_options,\n+\t\t\t     var_usage, 0);\n+\n+\tif (list) {\n+\t\tif (argc > 0)\n+\t\t\tusage(var_usage[0]);\n \t\trepo_config(the_repository, show_config, NULL);\n \t\tlist_vars();\n \t\treturn 0;\n \t}\n+\n+\tif (argc != 1)\n+\t\tusage(var_usage[0]);\n+\n \trepo_config(the_repository, git_default_config, NULL);\n \n-\tgit_var = get_git_var(argv[1]);\n+\tgit_var = get_git_var(argv[0]);\n \tif (!git_var)\n-\t\tusage(var_usage);\n+\t\tusage(var_usage[0]);\n \n \tval = git_var->read(IDENT_STRICT);\n \tif (!val)\n-- \n2.53.0\n\n\n"},{"id":"555317","messageId":"20261017112518.4548-1-kerylefondji7@gmail.com","threadId":"66563","inReplyTo":"1a146af667a8bcd4","subject":"[Outreachy][PATCH v2] builtin/var: refactor to use parse-options API","fromName":"","fromEmail":"kerylefondji7@gmail.com","sentAt":"2026-10-17T11:25:09Z","receivedAt":"2026-10-17T11:25:09Z","isPatch":true,"sender":{"key":"kerylefondji7@gmail.com","avatar":null},"body":"From: kerylefondji <kerylefondji7@gmail.com>\n\nMigrate option handling in 'git var' to the parse-options API.\nThis update also aligns variable resolution with current Git configuration\nand attribute handling.\n\nSigned-off-by: Keryle Blondeau Fondji Tamekong <keryle@DESKTOP-0SUCFI3>\n---\n builtin/var.c | 32 +++++++++++++++++++++++---------\n 1 file changed, 23 insertions(+), 9 deletions(-)\n\ndiff --git a/builtin/var.c b/builtin/var.c\nindex cc3a43cde2..b9234a55eb 100644\n--- a/builtin/var.c\n+++ b/builtin/var.c\n@@ -3,11 +3,9 @@\n  *\n  * Copyright (C) Eric Biederman, 2005\n  */\n-\n #define USE_THE_REPOSITORY_VARIABLE\n \n #include \"builtin.h\"\n-\n #include \"attr.h\"\n #include \"config.h\"\n #include \"editor.h\"\n@@ -18,8 +16,12 @@\n #include \"path.h\"\n #include \"strbuf.h\"\n #include \"run-command.h\"\n+#include \"parse-options.h\"\n \n-static const char var_usage[] = \"git var (-l | <variable>)\";\n+static const char * const var_usage[] = {\n+\tN_(\"git var (-l | <variable>)\"),\n+\tNULL\n+};\n \n static char *committer(int ident_flag)\n {\n@@ -120,6 +122,7 @@ struct git_var {\n \tchar *(*read)(int);\n \tint multivalued;\n };\n+\n static struct git_var git_vars[] = {\n \t{\n \t\t.name = \"GIT_COMMITTER_IDENT\",\n@@ -221,21 +224,32 @@ int cmd_var(int argc,\n {\n \tconst struct git_var *git_var;\n \tchar *val;\n+\tint list = 0;\n \n-\tshow_usage_if_asked(argc, argv, var_usage);\n-\tif (argc != 2)\n-\t\tusage(var_usage);\n+\tstruct option builtin_var_options[] = {\n+\t\tOPT_BOOL('l', \"list\", &list, N_(\"list builtin variables\")),\n+\t\tOPT_END()\n+\t};\n \n-\tif (strcmp(argv[1], \"-l\") == 0) {\n+\targc = parse_options(argc, argv, prefix, builtin_var_options,\n+\t\t\t     var_usage, 0);\n+\n+\tif (list) {\n+\t\tif (argc > 0)\n+\t\t\tusage(var_usage[0]);\n \t\trepo_config(the_repository, show_config, NULL);\n \t\tlist_vars();\n \t\treturn 0;\n \t}\n+\n+\tif (argc != 1)\n+\t\tusage(var_usage[0]);\n+\n \trepo_config(the_repository, git_default_config, NULL);\n \n-\tgit_var = get_git_var(argv[1]);\n+\tgit_var = get_git_var(argv[0]);\n \tif (!git_var)\n-\t\tusage(var_usage);\n+\t\tusage(var_usage[0]);\n \n \tval = git_var->read(IDENT_STRICT);\n \tif (!val)\n-- \n2.53.0\n\n\n"},{"id":"555318","messageId":"d109cff5-2257-42e4-a399-a99a2ab7ff43@app.fastmail.com","threadId":"66563","inReplyTo":"20261017112518.4548-1-kerylefondji7@gmail.com","subject":"Re: [Outreachy][PATCH v2] builtin/var: refactor to use parse-options API","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-10-17T11:45:45Z","receivedAt":"2026-10-17T11:45:45Z","isPatch":true,"sender":{"key":"kristofferhaugsbakk@fastmail.com","avatar":null},"body":"On Sat, Oct 17, 2026, at 13:25, kerylefondji7@gmail.com wrote:\n> From: kerylefondji <kerylefondji7@gmail.com>\n\nThe author part should generally be \nyour real name FYI. See SubmittingsPatches\nabout name or “real name”.\n\n>\n> Migrate option handling in 'git var' to the parse-options API.\n> This update also aligns variable resolution with current Git configuration\n> and attribute handling.\n>\n> Signed-off-by: Keryle Blondeau Fondji Tamekong <keryle@DESKTOP-0SUCFI3>\n\nThis looks like a real name. But the email is\nnot real. It should be the gmail one from\nthe author part.\n\n\n> ---\n> [snip]\n\n"},{"id":"555319","messageId":"20261017122044.568-1-kerylefondji7@gmail.com","threadId":"66563","inReplyTo":"1a146af667a8bcd4","subject":"Re: [Outreachy][PATCH v2] builtin/var: refactor to use parse-options API","fromName":"","fromEmail":"kerylefondji7@gmail.com","sentAt":"2026-10-17T12:20:44Z","receivedAt":"2026-10-17T12:20:44Z","isPatch":true,"sender":{"key":"kerylefondji7@gmail.com","avatar":null},"body":"Hi Kristoffer,\n\nThank you very much for your feedback and pointing this out. I will fix this immediately with my correct email address for the next version.\n\nBest regards,\nKeryle\n\n"}]}