summaryrefslogtreecommitdiff
path: root/log-tree.c
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2007-06-29 17:40:46 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-07-01 03:16:12 (GMT)
commit06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a (patch)
tree589caae1830bf51eb10f1022cdb0a8f5fa97ba07 /log-tree.c
parentee36856d8c8c1f8d53650a70d8f61561fb65ba38 (diff)
downloadgit-06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a.zip
git-06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a.tar.gz
git-06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a.tar.bz2
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 'log-tree.c')
-rw-r--r--log-tree.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/log-tree.c b/log-tree.c
index 0cf21bc..ced3f33 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -408,5 +408,6 @@ int log_tree_commit(struct rev_info *opt, struct commit *commit)
shown = 1;
}
opt->loginfo = NULL;
+ maybe_flush_or_die(stdout, "stdout");
return shown;
}