Don't fflush(stdout) when it's not helpful
authorTheodore Ts'o <tytso@mit.edu>
Fri, 29 Jun 2007 17:40:46 +0000 (13:40 -0400)
committerJunio C Hamano <gitster@pobox.com>
Sun, 1 Jul 2007 03:16:12 +0000 (20:16 -0700)
commit06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a
tree589caae1830bf51eb10f1022cdb0a8f5fa97ba07
parentee36856d8c8c1f8d53650a70d8f61561fb65ba38
Don't fflush(stdout) when it's not helpful

This patch arose from a discussion started by Jim Meyering's patch
whose intention was to provide better diagnostics for failed writes.
Linus proposed a better way to do things, which also had the added
benefit that adding a fflush() to git-log-* operations and incremental
git-blame operations could improve interactive respose time feel, at
the cost of making things a bit slower when we aren't piping the
output to a downstream program.

This patch skips the fflush() calls when stdout is a regular file, or
if the environment variable GIT_FLUSH is set to "0".  This latter can
speed up a command such as:

GIT_FLUSH=0 strace -c -f -e write time git-rev-list HEAD | wc -l

a tiny amount.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git.txt
builtin-blame.c
builtin-rev-list.c
cache.h
log-tree.c
write_or_die.c