From: Jason Riedy <ejr@EECS.Berkeley.EDU>
To: git@vger.kernel.org
Subject: Re: [PATCH] Add ALL_LDFLAGS to the git target.
Date: Tue, 28 Mar 2006 11:46:28 -0800 [thread overview]
Message-ID: <15693.1143575188@lotus.CS.Berkeley.EDU> (raw)
In-Reply-To: <7vu09jks1u.fsf@assigned-by-dhcp.cox.net>
And Junio C Hamano writes:
- Hmph. We do fprintf(stderr, "blah\r") to draw them. The
- standard says that "standard error stream is not fully
- buffered", but I guess it does not necessarily mean it is
- unbuffered, so we probably need to fflush(3) there. Would
- something like this help?
I suppose I should have mentioned that I tried flushing
stderr. Your more comprehensive flushing also does not
fix it, giving outputs like:
> Unpacking Total 3333 objects
> , written 33 (delta 1), reused 0 (delta 0)
The problem is that stderr from a child is not tied to any
stream of its parent. Generally, as far as I know, you
cannot make any assumptions about how pipes from separate
processes are interleaved in the output. Some standard may
say something, but I have no idea what or if anyone listens.
And this particular system is a busy SMP node, making the
problem worse.
Line-buffered streams like stdout tend to work, but not
unbuffered streams like stderr. We can't make stderr line-
buffered without breaking the status indicator...
If I add a third fd to all the pipes and dup it to stderr,
the tests work. I never read from that fd, so I never get
the status output... Progress needs to be part of the
protocol so front ends can handle it cleanly rather than
using stderr tricks.
So some possibilities:
1) Add the ability to pass options through the whole
connect system. Then pass -q in the tester.
2) Add a specific "quiet" command to the protocol for
just passing -q from git-fetch-pack. Pass -q in the
tester.
3) Add an option to pack-objects that dumps progress
output to stdout in a special packet format. Then
update everyone who talks through upload-pack to
expect another phase of informational messages after
negotiating object differences and before the pack
data.
The first two are cosmetic fixes only, and #2 is a cheap,
ugly, but easy hack.
This problem is (to me) low priority. It unfortunately
breaks a test case on AIX, but I can live with it for now.
If others here start to listen to the gospel of git, well,
I'll need to fix it. (But I once recommended Arch, and
people stopped listening after they tried it.)
Folks using moderately-loaded SMPs may experience similar
problems. But if they're fetching large packs, the problem
likely won't appear at all.
Jason
P.S. For the whole finding-a-function-name business, some of
us are using git on fixed-format Fortran. Every non-comment
line begins with whitespace... ;) And in free format, many
people don't add that first indentation within subroutines.
next prev parent reply other threads:[~2006-03-28 19:46 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-28 0:28 What's in git.git Junio C Hamano
2006-03-28 1:15 ` [PATCH] Add ALL_LDFLAGS to the git target Jason Riedy
2006-03-28 1:25 ` Junio C Hamano
2006-03-28 3:11 ` Jason Riedy
2006-03-28 6:21 ` Junio C Hamano
2006-03-28 19:46 ` Jason Riedy [this message]
2006-03-28 22:48 ` Mark Wooding
2006-03-28 23:03 ` Linus Torvalds
2006-03-28 23:20 ` Junio C Hamano
2006-03-28 23:59 ` Jason Riedy
2006-03-29 0:01 ` Junio C Hamano
2006-03-28 23:21 ` Mark Wooding
2006-03-29 0:16 ` [PATCH] Support for pickaxe matching regular expressions Petr Baudis
2006-03-29 13:09 ` Petr Baudis
2006-03-29 11:42 ` [PATCH] Add ALL_LDFLAGS to the git target Johannes Schindelin
2006-03-28 2:05 ` Gitk strangeness Linus Torvalds
2006-03-28 2:12 ` Junio C Hamano
2006-03-28 2:31 ` Paul Mackerras
2006-03-28 2:52 ` Linus Torvalds
2006-03-28 2:54 ` Junio C Hamano
2006-03-28 4:31 ` Paul Mackerras
2006-03-28 5:38 ` Junio C Hamano
2006-03-28 6:18 ` Paul Mackerras
2006-03-28 7:52 ` Junio C Hamano
2006-03-28 22:51 ` Paul Mackerras
2006-03-29 0:50 ` Junio C Hamano
2006-03-29 6:41 ` Junio C Hamano
2006-03-30 20:57 ` Alex Riesen
2006-03-30 22:33 ` Paul Mackerras
2006-03-30 23:46 ` Paul Mackerras
2006-03-31 1:50 ` Junio C Hamano
2006-03-31 6:27 ` Alex Riesen
2006-03-28 2:57 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=15693.1143575188@lotus.CS.Berkeley.EDU \
--to=ejr@eecs.berkeley.edu \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.