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

Re: [PATCH v2 5/5] Documentation: add caveats about I/O buffering for check-{attr,ignore}

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 11, 2013, 18:09 UTC
Message-ID
<7vsj2xhrc7.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1365681913-7059-5-git-send-email-git@adamspiers.org>
Adam Spiers <git@adamspiers.org> writes:
Show 40 quoted lines
> diff --git a/Documentation/git-check-ignore.txt b/Documentation/git-check-ignore.txt
> index 7e3cabc..8e1f7ab 100644
> --- a/Documentation/git-check-ignore.txt
> +++ b/Documentation/git-check-ignore.txt
> @@ -81,6 +81,11 @@ not.  (Without this option, it would be impossible to tell whether the
>  absence of output for a given file meant that it didn't match any
>  pattern, or that the output hadn't been generated yet.)
>  
> +Buffering happens as documented under the `GIT_FLUSH` option in
> +linkgit:git[1].  The caller is responsible for avoiding deadlocks
> +caused by overfilling an input buffer or reading from an empty output
> +buffer.
> +
>  EXIT STATUS
>  -----------
>  
> diff --git a/Documentation/git.txt b/Documentation/git.txt
> index 6a875f2..eecdb15 100644
> --- a/Documentation/git.txt
> +++ b/Documentation/git.txt
> @@ -808,13 +808,15 @@ for further details.
>  
>  'GIT_FLUSH'::
>  	If this environment variable is set to "1", then commands such
> -	as 'git blame' (in incremental mode), 'git rev-list', 'git log',
> -	and 'git whatchanged' will force a flush of the output stream
> -	after each commit-oriented record have been flushed.   If this
> -	variable is set to "0", the output of these commands will be done
> -	using completely buffered I/O.   If this environment variable is
> -	not set, Git will choose buffered or record-oriented flushing
> -	based on whether stdout appears to be redirected to a file or not.
> +	as 'git blame' (in incremental mode), 'git rev-list', 'git
> +	log', 'git check-attr', 'git check-ignore', and 'git
> +	whatchanged' will force a flush of the output stream after
> +	each commit-oriented record have been flushed.  If this
> +	variable is set to "0", the output of these commands will be
> +	done using completely buffered I/O.  If this environment
> +	variable is not set, Git will choose buffered or
> +	record-oriented flushing based on whether stdout appears to be
> +	redirected to a file or not.
Reflowing of the text is very much unappreciated X-<.  

It took me five minutes to spot that you only added check-attr and check-ignore and forgot to adjust that "commit-oriented record" to an updated reality, where you now have commands that produce non-commit-oriented record to the output.

It would have been far simpler to review if it were like this, don't you think?

Show 11 quoted lines
>  	If this environment variable is set to "1", then commands such
> 	as 'git blame' (in incremental mode), 'git rev-list', 'git log',
> -	and 'git whatchanged' will force a flush of the output stream
> -	after each commit-oriented record have been flushed.   If this
> +	'git check-attr', 'git check-ignore', and 'git whatchanged' will
> +	force a flush of the output stream
> +     after each record have been flushed.   If this
> 	variable is set to "0", the output of these commands will be done
> 	using completely buffered I/O.   If this environment variable is
>  	not set, Git will choose buffered or record-oriented flushing
>  	based on whether stdout appears to be redirected to a file or not.
Previous: Adam SpiersNext: Adam Spiers
Message 29 of 33 in “RFC: two minor tweaks to check-ignore to help git-annex assistant”
  1. Adam SpiersApr 8, 2013
  2. Junio C HamanoApr 8, 2013
  3. Jeff KingApr 8, 2013
  4. 1/5 check-ignore: move setup into cmd_check_ignore()Adam Spiers, Apr 11, 2013
  5. 2/5 check-ignore: allow incremental streaming of queries via --stdinAdam Spiers, Apr 11, 2013
  6. Jeff KingApr 11, 2013
  7. Adam SpiersApr 11, 2013
  8. Adam SpiersApr 11, 2013
  9. Jeff KingApr 11, 2013
  10. 3/5 Documentation: add caveats about I/O buffering for check-{attr,ignore}Adam Spiers, Apr 11, 2013
  11. Jeff KingApr 11, 2013
  12. 4/5 t0008: remove duplicated test fixture dataAdam Spiers, Apr 11, 2013
  13. 5/5 check-ignore: add -n / --non-matching optionAdam Spiers, Apr 11, 2013
  14. Jeff KingApr 11, 2013
  15. Adam SpiersApr 11, 2013
  16. 1/5 t0008: remove duplicated test fixture dataAdam Spiers, Apr 11, 2013
  17. 2/5 check-ignore: add -n / --non-matching optionAdam Spiers, Apr 11, 2013
  18. 3/5 check-ignore: move setup into cmd_check_ignore()Adam Spiers, Apr 11, 2013
  19. 4/5 check-ignore: allow incremental streaming of queries via --stdinAdam Spiers, Apr 11, 2013
  20. Jeff KingApr 11, 2013
  21. Adam SpiersApr 11, 2013
  22. Jeff KingApr 11, 2013
  23. Junio C HamanoApr 22, 2013
  24. Adam SpiersApr 24, 2013
  25. t0008: use named pipe (FIFO) to test check-ignore streamingAdam Spiers, Apr 29, 2013
  26. Aaron SchrabApr 11, 2013
  27. Adam SpiersApr 11, 2013
  28. 5/5 Documentation: add caveats about I/O buffering for check-{attr,ignore}Adam Spiers, Apr 11, 2013
  29. Junio C HamanoApr 11, 2013
  30. 5/5 Documentation: add caveats about I/O buffering for check-{attr,ignore}Adam Spiers, Apr 11, 2013
  31. Junio C HamanoApr 12, 2013
  32. Adam SpiersApr 12, 2013
  33. Jeff KingApr 11, 2013

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.