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

Re: [PATCH v2] write-or-die: make GIT_FLUSH a Boolean environment variable

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 3, 2024, 19:18 UTC
Message-ID
<xmqq5y0a9qed.fsf@gitster.g>
In-Reply-To
<20240103184203.GA4334@tb-raspi4>
Torsten Bögershausen <tboegi@web.de> writes:
Show 22 quoted lines
>> -			cp = getenv("GIT_FLUSH");
>> -			if (cp)
>> -				skip_stdout_flush = (atoi(cp) == 0);
>> -			else if ((fstat(fileno(stdout), &st) == 0) &&
>> -				 S_ISREG(st.st_mode))
>> -				skip_stdout_flush = 1;
>> -			else
>> -				skip_stdout_flush = 0;
>> +			skip_stdout_flush = git_env_bool("GIT_FLUSH", -1);
>> +			if (skip_stdout_flush < 0) {
>> +				struct stat st;
>> +				if (fstat(fileno(f), &st))
>> +					skip_stdout_flush = 0;
>> +				else
>> +					skip_stdout_flush = S_ISREG(st.st_mode);
>> +			}
>>  		}
>>  		if (skip_stdout_flush && !ferror(f))
>>  			return;
>> --- >8 ---
>
> Thanks for a nice reading - I can not imagine a better version.

Yup, the flow of the logic feels very natural with this version by making it clear that the case that the default "-1" is returned to us is where we need to figure out an appropriate value ourselves. An added bonus is that the scope "struct stat" has is limited to the absolute minimum. I like it, too.

Thanks.
Previous: Torsten BögershausenNext: Taylor Blau
Message 8 of 13 in “write-or-die: make GIT_FLUSH a Boolean environment variable”
  1. write-or-die: make GIT_FLUSH a Boolean environment variableChandra Pratap via GitGitGadget, Dec 30, 2023
  2. Torsten BögershausenJan 1, 2024
  3. Junio C HamanoJan 2, 2024
  4. write-or-die: make GIT_FLUSH a Boolean environment variableChandra Pratap via GitGitGadget, Jan 3, 2024
  5. Patrick SteinhardtJan 3, 2024
  6. Taylor BlauJan 3, 2024
  7. Torsten BögershausenJan 3, 2024
  8. Junio C HamanoJan 3, 2024
  9. Taylor BlauJan 4, 2024
  10. Junio C HamanoJan 3, 2024
  11. write-or-die: make GIT_FLUSH a Boolean environment variableChandra Pratap via GitGitGadget, Jan 4, 2024
  12. Taylor BlauJan 4, 2024
  13. Junio C HamanoJan 4, 2024

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.