Flush output in start_async

This prevents double output in case stdout is redirected.

Signed-off-by: Anders Melchiorsen <mail@cup.kalibalik.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Anders Melchiorsen 2008-08-04 02:30:03 +02:00 committed by Junio C Hamano
parent 22537765f5
commit 2c3766f06a
2 changed files with 9 additions and 0 deletions

View File

@ -304,6 +304,9 @@ int start_async(struct async *async)
async->out = pipe_out[0];
#ifndef __MINGW32__
/* Flush stdio before fork() to avoid cloning buffers */
fflush(NULL);
async->pid = fork();
if (async->pid < 0) {
error("fork (async) failed: %s", strerror(errno));

View File

@ -31,6 +31,12 @@ test_expect_success 'clone with excess parameters (2)' '
'
test_expect_success 'output from clone' '
rm -fr dst &&
git clone -n "file://$(pwd)/src" dst >output &&
test $(grep Initialized output | wc -l) = 1
'
test_expect_success 'clone does not keep pack' '
rm -fr dst &&