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

Re: preparing for 2.34.1

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Nov 22, 2021, 23:30 UTC
Message-ID
<nycvar.QRO.7.76.6.2111230025440.63@tvgsbejvaqbjf.bet>
In-Reply-To
<xmqqmtlvbynr.fsf@gitster.g>
Hi Junio,
On Mon, 22 Nov 2021, Junio C Hamano wrote:
Show 7 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > The quickest workaround for this is probably to special-case the editor
> > `echo`:
>
> "GIT_EDITOR=: git cmd" would also be a common trick people would use
> to bypass editor and take whatever is given as an initial template.

GIT_EDITOR=: is not a problem because of https://github.com/git/git/blob/v2.34.0/editor.c#L59:

	if (strcmp(editor, ":")) {
		[...]
		term_fail = save_term(1);
		if (start_command(&p) < 0) {
			if (!term_fail)
				restore_term();
			[...]
		}
		[...]
		if (!term_fail)
			restore_term();
		[...]
	}
Show 11 quoted lines
> > However, I could imagine that other scenarios call for an editor that
> > _also_ does not run in the terminal, and where also no real terminal is
> > available for saving and restoring.
> >
> > I was tempted to suggest an `isatty(2)`, but that probably comes with its
> > own problems, too.
>
> I think isatty(2) is pretty much our synonym to "are we talking to
> an end-user sitting in front of the terminal".  Mostly we use it as
> a way to control the progress bars, and use of editor on terminal
> would be in line with these existing uses.

Indeed, I think that isatty(2) is a better indicator than isatty(1). We sometimes _do_ redirect the output of, say, `git commit`, to capture the commit hash that was generated. We typically do not redirect stderr, though, unless calling from an application and capturing everything via pipes. So isatty(2) strikes me as the best balance we can strike here.

Ciao, Dscho

Previous: Junio C HamanoNext: rsbecker@nexbridge.com
Message 5 of 10 in “preparing for 2.34.1”
  1. Junio C HamanoNov 22, 2021
  2. Carlo ArenasNov 22, 2021
  3. Johannes SchindelinNov 22, 2021
  4. Junio C HamanoNov 22, 2021
  5. Johannes SchindelinNov 22, 2021
  6. rsbecker@nexbridge.comNov 22, 2021
  7. Carlo ArenasNov 22, 2021
  8. Derrick StoleeNov 22, 2021
  9. Junio C HamanoNov 22, 2021
  10. preparing for 2.34.1 (2nd round)Junio C Hamano, Nov 23, 2021

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.