Re: [RFC PATCH 1/1] config: surface editor failure in exit code
flat view
From: Kenneth Lorber <hidden>
Date: 2026-08-19 11:18:10
On Aug 18, 2026, at 4:42 AM, Karthik Nayak [off-list ref] wrote: Kenneth Lorber [off-list ref] writes:quoted
Teach git config --edit to show editor failure to the parent process. Add 2 tests to t1300 to check editor exiting successfully or failing. Signed-off-by: Kenneth Lorber <redacted> --- builtin/config.c | 5 +++-- t/t1300-config.sh | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-)diff --git a/builtin/config.c b/builtin/config.c index 0882899c3f..a166b2131e 100644 --- a/builtin/config.c +++ b/builtin/config.c@@ -1291,6 +1291,7 @@ static int cmd_config_remove_section(int argc, const char **argv, const char *prstatic int show_editor(struct config_location_options *opts) { char *config_file; + int ret; if (!opts->source.file && !startup_info->have_repository) die(_("not in a git directory"));@@ -1313,10 +1314,10 @@ static int show_editor(struct config_location_options *opts)else if (errno != EEXIST) die_errno(_("cannot create configuration file %s"), config_file); } - launch_editor(config_file, NULL, NULL); + ret = launch_editor(config_file, NULL, NULL); free(config_file); - return 0; + return ret; } static int cmd_config_edit(int argc, const char **argv, const char *prefix,diff --git a/t/t1300-config.sh b/t/t1300-config.sh index e3f8064889..9a8f852a86 100755 --- a/t/t1300-config.sh +++ b/t/t1300-config.sh@@ -1823,6 +1823,24 @@ test_expect_success 'command line overrides environment config' 'test_cmp expect actual ' +test_expect_success 'git config --edit successful exit' ' + test_when_finished "rm -rf repo" && + git init repo && + GIT_EDITOR=true && + export GIT_EDITOR && + git -C repo config -e && + unset GIT_EDITOR +'Nit: couldn't this be simply `test_env GIT_EDITOR=true git -C repo config -e` and avoid the set, export and unset?
Thank you, this is exactly the cleanup I was looking for.
quoted
+ +test_expect_success 'git config --edit failure exit' ' + test_when_finished "rm -rf repo" && + git init repo && + GIT_EDITOR=false && + export GIT_EDITOR && + test_must_fail git -C repo config -e && + unset GIT_EDITOR +'Same here..quoted
+ test_expect_success 'git config --edit works' ' git config -f tmp test.value no && echo test.value=yes >expect && -- 2.43.0The patch looks good to me otherwise :)
Thank you.