Provide a way to flush git-diff-tree's output
authorPaul Mackerras <paulus@samba.org>
Thu, 18 May 2006 06:58:51 +0000 (16:58 +1000)
committerJunio C Hamano <junkio@cox.net>
Thu, 18 May 2006 07:25:50 +0000 (00:25 -0700)
commit70f75cc96a3c590ac1c54c09c39446626f155ef7
tree88a7314b1be7d8d782268f33197e09fbd98c3ba6
parent18b01f4ff6db66b6419c7501bb303b643638b297
Provide a way to flush git-diff-tree's output

Gitk wants to use git-diff-tree as a filter to tell it which ids from
a given list affect a set of files or directories.  We don't want to
fork and exec a new git-diff-tree process for each batch of ids, since
there could be a lot of relatively small batches.  For example, a
batch could contain as many ids as fit in gitk's headline display
window, i.e. 20 or so, and we would be processing a new batch every
time the user scrolls that window.

The --stdin flag to git-diff-tree is suitable for this, but the main
difficulty is that the output of git-diff-tree gets buffered and
doesn't get sent until the buffer is full.

This provides a way to get git-diff-tree to flush its output buffers.
If a blank line is supplied on git-diff-tree's standard input, it will
flush its output buffers and then accept further input.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
diff-tree.c