Re: [RFC PATCH 0/1] config: surface editor failure in exit code

Junio C Hamano <[email protected]>
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
Kenneth Lorber <[email protected]> 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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.