Code

git-gui: Use a smaller pipe buffer for update-index.
authorShawn O. Pearce <spearce@spearce.org>
Mon, 13 Nov 2006 00:33:33 +0000 (19:33 -0500)
committerShawn O. Pearce <spearce@spearce.org>
Mon, 13 Nov 2006 05:10:40 +0000 (00:10 -0500)
When we shove a large number of files at update-index and they have
very short path names we are likely going to fit a large number of
them into the pipe buffer very early; thereby seeing a huge progress
update followed by lots of waiting between progress updates due to
the latency of update-index.

Using a smaller buffer should help smooth out the progress updates
as we are better able to keep tabs on the update-index process'
progress through our list of paths.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui

diff --git a/git-gui b/git-gui
index b1a90e66616f0b0c5ff6cb97c77141e04d4e01f4..7e28328cf0d5eca0d5c3085954e5bff5c135594f 100755 (executable)
--- a/git-gui
+++ b/git-gui
@@ -1171,7 +1171,11 @@ proc update_index {pathList} {
                $totalCnt \
                0.0]
        set fd [open "| git update-index --add --remove -z --stdin" w]
-       fconfigure $fd -blocking 0 -translation binary
+       fconfigure $fd \
+               -blocking 0 \
+               -buffering full \
+               -buffersize 512 \
+               -translation binary
        fileevent $fd writable [list \
                write_update_index \
                $fd \