git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] rebase -i: abort cleanly if the editor fails to launch

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 19, 2009, 20:44 UTC
Message-ID
<7v8wcy7kyc.fsf@alter.siamese.dyndns.org>
In-Reply-To
<4B2CC133.9010704@gmail.com>
Björn Gustavsson <bgustavsson@gmail.com> writes:
Show 15 quoted lines
> If the user's configured editor is emacsclient, the editor
> will fail to launch if emacs is not running and the git
> command that tried to lanuch the editor will abort. For most
> commands, all you have to do is to start emacs and repeat
> the command.
>
> The "git rebase -i" command, however, aborts without cleaning
> the "$GIT_DIR/rebase-merge" directory if it fails to launch the
> editor, so you'll need to do "git rebase --abort" before
> repeating the rebase command.
>
> Change "git rebase -i" to terminate using "die_abort" (instead of
> with "die") if the initial launch of the editor fails.
>
> Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com>
Two questions:
 - Is emacsclient the _only_ editor that can exit with non-zero status to
   signal an error condition "the user invoked me to edit an existing
   file, but I ended up not letting the user edit it"?
 - Are there editors that let you exit with non-zero status on demand?

The above is not a complaint to your log message, but is a genuine request for information.

An editor that can exit with non-zero status on demand could use this codepath to abort the rebase, when a user realizes that the edit s/he has done so far was completely bogus [*1*]. In such a case, the existing error message "Could not execute editor" may sound funny.

Regardless of that small issue, I think the patch to clean-up makes sense.
Thanks.
[Footnote]

*1* We interpret a completely empty $TODO as a signal from the user to abort the sequencer (the literal interpretation of such a $TODO would be to not pick any commits, which could be a source of potential confusion), so it is not an issue in practice if your editor does not allow you to exit with non-zero status to signal an exception. You can remove all lines and exit the editor normally instead.

Previous: Björn GustavssonNext: Johannes Schindelin
Message 2 of 5 in “rebase -i: abort cleanly if the editor fails to launch”
  1. rebase -i: abort cleanly if the editor fails to launchBjörn Gustavsson, Dec 19, 2009
  2. Junio C HamanoDec 19, 2009
  3. Johannes SchindelinDec 19, 2009
  4. Junio C HamanoDec 20, 2009
  5. Björn GustavssonDec 20, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.