diff options
author | Theodore Ts'o <tytso@mit.edu> | 2007-06-29 13:40:46 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-30 20:16:12 -0700 |
commit | 06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a (patch) | |
tree | 589caae1830bf51eb10f1022cdb0a8f5fa97ba07 /builtin-blame.c | |
parent | ee36856d8c8c1f8d53650a70d8f61561fb65ba38 (diff) | |
download | git-06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a.tar.gz |
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>
Diffstat (limited to 'builtin-blame.c')
-rw-r--r-- | builtin-blame.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/builtin-blame.c b/builtin-blame.c index f7e2c13885..da23a6f9c9 100644 --- a/builtin-blame.c +++ b/builtin-blame.c @@ -1459,6 +1459,7 @@ static void found_guilty_entry(struct blame_entry *ent) printf("boundary\n"); } write_filename_info(suspect->path); + maybe_flush_or_die(stdout, "stdout"); } } |