From: Karthik Nayak Date: Tue, 18 Aug 2026 08:26:36 GMT Subject: Re: [RFC PATCH 0/1] config: surface editor failure in exit code Message-ID: In-Reply-To: Junio C Hamano writes: > Kenneth Lorber writes: > >> When the editor invoked by 'git config -e' fails (crashes or calls exit(3) >> with a non-zero value), git notices and give an error: >> editor.c:launch_specified_editor() >> return error("there was a problem with the editor '%s'", editor); >> which is then lost: >> builtin/config.c:show_editor() >> launch_editor(config_file, NULL, NULL); >> which results in git always calling exit(0). Note that the value is >> not explicitly thrown away with "(void)", so this may not have been >> intentional. > > I do not intentionally exit my editor with a non-zero status myself, > but what I hear from others who do is that they do so to affect the > invoking 'git' command, e.g., to stop 'git commit' from creating a > commit. They somehow realize they botched the edit, and they want > to prevent 'git commit' from committing, signaling that by exiting > their editor. A cleaner and more modern way to do so, by the way, > is to empty the editor buffer. In either case, 'git commit' itself > exits with a non-zero status. > > It might have been more consistent if 'git config -e' exited with a > non-zero status when it noticed that the editor exited with a > non-zero status, in that sense. But we have never done so, and that > is probably because we did not care ;-) > > In any case, I am not sure whether there is much value in making > 'git config -e' start behaving that way. Even if it can notice a > failed editor, the damage to the file is already done, and there is > not enough information to undo the damage even if you wanted to when > detecting such an error. This is quite different from when an editor > edits the 'COMMIT_EDITMSG' file and fails. > > So, I dunno. Wouldn't it be better to notify the user that something went wrong rather than simply brush it off? I would be in support of the patch: $ GIT_EDITOR=false git config --edit error: there was a problem with the editor 'false' $ echo $status 0 As a user the expectation here would be a non-zero exit status.