From: Jim Meyering <jim@meyering.net>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-rev-list: give better diagnostic for failed write
Date: Mon, 25 Jun 2007 23:52:14 +0200 [thread overview]
Message-ID: <878xa7u2gh.fsf@rho.meyering.net> (raw)
In-Reply-To: <alpine.LFD.0.98.0706251349540.8675@woody.linux-foundation.org> (Linus Torvalds's message of "Mon\, 25 Jun 2007 13\:59\:21 -0700 \(PDT\)")
Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Mon, 25 Jun 2007, Jim Meyering wrote:
>>
>> [this patch depends on the one I posted here:
>> http://marc.info/?l=git&m=118280134031923&w=2 ]
>>
>> Without this patch, git-rev-list unnecessarily omits strerror(errno)
>> from its diagnostic, upon write failure:
>
> And this is a perfect example of what's wrong with the whole thing.
>
> Dammit, how many times do I need to say this:
>
> - If you want reliable errors, don't use stdio!
>
> That fflush is there FOR A REASON. You removed it FOR A MUCH LESS
> IMPORTANT REASON!
Wow. No need to curse and get into ALL_CAPS_MODE every time you
reply to me. It does not advance your cause.
Remember: I'm trying to improve existing code here.
You should save some of your ire for the person who wrote that code.
> That fflush is there exactly because WE DO NOT WANT TO BUFFER the list of
> commits, because that thing is meant very much to be used for pipelines,
> and it's quite common that the receiving end is going to do something
> asynchronous with the result, and can - and does - want the results as
> soon as possible.
That's good to know. I'm glad you pointed it out. It would have been
nice to have a comment. However, wouldn't it be better at least to check
for and report fflush failure? fflush usually does a write, after all.
Most of the rest of the code is careful to diagnose write errors at
the source. Why not here?
I've posted a revised patch.
> IOW, things like "gitk" use git-rev-list exactly to get the list of
> commits, and they want that list *incrementally*. They don't want to wait
> for git-rev-list to have filled up some 8kB buffer of commits. Especially
> since generating those commits can be slow if we're talking about a big
> tree and some path-limited stuff.
>
> So for example, do something like
>
> git rev-list HEAD -- drivers/char/drm/Makefile
>
> and if you don't see the result scroll a line at a time on a slower
> machine, there's something *wrong*.
>
> Junio, I'm NAK'ing this very forcefully!
>
> Jim: I don't know what I'm doing wrong, but I'm apparently not reaching
> you. So let me try one more time:
>
> - stdio really isn't very good with error handling
>
> - if you use stdio, YOU HAD BETTER ACCEPT THAT
Using stdio is fine, as long as you know and respect its limitations.
It's a real shame that you have to intersperse your often-valuable
feedback with such vitriol.
next prev parent reply other threads:[~2007-06-25 21:52 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-25 20:32 [PATCH] git-rev-list: give better diagnostic for failed write Jim Meyering
2007-06-25 20:59 ` Linus Torvalds
2007-06-25 21:52 ` Jim Meyering [this message]
2007-06-25 22:20 ` Linus Torvalds
2007-06-25 22:56 ` Linus Torvalds
2007-06-25 23:01 ` Linus Torvalds
2007-06-27 8:56 ` Jim Meyering
2007-06-25 23:16 ` Linus Torvalds
2007-06-26 17:11 ` Theodore Tso
2007-06-26 17:32 ` Linus Torvalds
2007-06-26 22:04 ` Theodore Tso
2007-06-26 22:32 ` Linus Torvalds
2007-06-28 19:04 ` Theodore Tso
2007-06-28 21:34 ` Jeff King
2007-06-28 23:53 ` [PATCH] Don't fflush(stdout) when it's not helpful Theodore Tso
2007-06-29 1:05 ` Frank Lichtenheld
2007-06-29 3:48 ` Theodore Tso
2007-06-29 6:38 ` Jeff King
2007-06-29 7:07 ` Junio C Hamano
2007-06-29 16:06 ` Linus Torvalds
2007-06-29 17:40 ` Theodore Tso
2007-06-29 23:43 ` Linus Torvalds
2007-06-30 2:15 ` Junio C Hamano
2007-06-30 4:24 ` Linus Torvalds
2007-06-30 14:27 ` Theodore Tso
2007-06-30 18:42 ` Junio C Hamano
2007-06-26 9:06 ` [PATCH] git-rev-list: give better diagnostic for failed write Jeff King
2007-06-26 17:12 ` Linus Torvalds
2007-06-27 8:59 ` Jim Meyering
2007-06-27 16:06 ` Linus Torvalds
2007-06-25 21:39 ` Jim Meyering
2007-06-25 21:53 ` Linus Torvalds
2007-06-25 22:08 ` Jim Meyering
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=878xa7u2gh.fsf@rho.meyering.net \
--to=jim@meyering.net \
--cc=git@vger.kernel.org \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).