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

Re: [RFC] Indicate that Git waits for user input via editor

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 15, 2017, 22:32 UTC
Message-ID
<xmqq8tf7yxzn.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<274B4850-2EB7-4BFA-A42C-25A573254969@gmail.com>
Lars Schneider <larsxschneider@gmail.com> writes:
Show 9 quoted lines
> However, if you configure an editor that runs outside your terminal window then
> you might run into the following problem: 
> Git opens the editor but the editor is the background or on another screen and 
> consequently you don't see the editor. You only see the Git command line 
> interface which appears to hang.
>
> I wonder if would make sense to print "Opening editor for user input..." or
> something to the screen to make the user aware of the action. Does this sound
> sensible to you? Am I missing an existing solution to this problem?

My knee-jerk reaction was: for such a user who has EDITOR set to a program that pops under, wouldn't any program, not just Git, that uses the editor to open a file for editing/viewing look broken? Would we care if we are called "broken" by such a clueless user who cannot tell a (non-)broken caller of an editor and a broken editor?

But that is true only when the user does realize/expect that the program s/he is running _will_ open an editor at the point of the workflow. If s/he types "git merge" or "git rebase -i @{u}", for example, it is true that the world would be a better place if s/he knows that would ask a file to be edited with an editor, but it is unrealisic to expect that everybody knows how to operate these commands. Everybody is a newbie at least once.

I wonder if we can do something like
	git_spawn_editor()
	{
		const char *EL = "\033[K"; /* Erase in Line */
		/* notice the lack of terminating LF */
		fprintf(stderr, "Launching your editor...");
		fflush(stderr);
		if (!run_command(... spawn the editor ...)) {
			/* Success! - go back and erase the whole line */
			fprintf(stderr, "\r%s", EL);
		} else {
			fprintf(stderr, "failed (%s)\n", strerror(errno));
		}
		fflush(stderr);
	}

to tentatively give a message without permanently wasting the vertical space.

Previous: Stefan BellerNext: Stefan Beller
Message 5 of 16 in “[RFC] Indicate that Git waits for user input via editor”
  1. Lars SchneiderNov 15, 2017
  2. Stefan BellerNov 15, 2017
  3. Lars SchneiderNov 15, 2017
  4. Stefan BellerNov 15, 2017
  5. Junio C HamanoNov 15, 2017
  6. Stefan BellerNov 16, 2017
  7. Junio C HamanoNov 16, 2017
  8. Stefan BellerNov 16, 2017
  9. Junio C HamanoNov 16, 2017
  10. launch_editor(): indicate that Git waits for user inputJunio C Hamano, Nov 16, 2017
  11. Lars SchneiderNov 16, 2017
  12. Junio C HamanoNov 16, 2017
  13. Lars SchneiderNov 16, 2017
  14. Junio C HamanoNov 17, 2017
  15. Kaartic SivaraamNov 18, 2017
  16. Junio C HamanoNov 19, 2017

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.