[RFC PATCH 1/1] config: surface editor failure in exit code
Kenneth Lorber <[email protected]>
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- 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 *pr static 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 +' + +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 +' + test_expect_success 'git config --edit works' ' git config -f tmp test.value no && echo test.value=yes >expect && -- 2.43.0