Re: [RFC PATCH] vreportf: ensure sensible ordering of normal and error output
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Dec 1, 2021, 02:36 UTC
- Message-ID
- <CAPig+cT+YfgBG3Aqszp+y7iy_megboECZy3NkMqUjBj7=Z661A@mail.gmail.com>
- In-Reply-To
- <YaaN0pibKWgjcVk3@coredump.intra.peff.net>
On Tue, Nov 30, 2021 at 3:47 PM Jeff King <peff@peff.net> wrote:
Show 16 quoted lines
> On Tue, Nov 30, 2021 at 09:05:54AM -0500, Eric Sunshine wrote: > > (1) I don't think the practice is documented anywhere, so people -- > > including me when I wrote builtin/worktree.c -- might not know about > > it. Indeed, we don't seem to be entirely consistent about doing it > > this way. Randomly picking submodule-helper.c, for instance, I see > > status-like messages going to stdout: > > Yeah, we've definitely not been consistent here. There's no silver > bullet for this aside from vigilance during review, but probably laying > out guidelines could help. > > Here's a past discussion (that actually goes the other way: somebody > complaining that stderr should be on stdout!) where I laid out my mental > model: > > https://lore.kernel.org/git/20110907215716.GJ13364@sigill.intra.peff.net/
Thanks for the reference. I'll take a stab at adding a blurb about this to CodingGuidelines.
Show 12 quoted lines
> > (2) With git-worktree being four or five years old, for > > backward-compatibility concerns, I worry that "that ship has sailed", > > where 'that' is the freedom to relocate those status-like messages > > from stdout to stderr. I don't want to break tooling which exists > > around git-worktree. > > IMHO it would be OK to change these. They are, after all, marked for > translation, so they're not reliably machine-readable anyway. It's > possible that some script could not be parsing them, but just trying to > redirect them. Or even keying on content in stderr as a sign of an error > (as tcl likes to do). But I don't think that's a guarantee we want to be > bound by.
That's a good point about them being marked for translation. It also reminds me that we made some reasonably significant changes to this exact message in 2c27002a0a (worktree: improve message when creating a new worktree, 2018-04-24), and we didn't hear any complaints, let alone complaints about tool breakage.
> See 68b939b2f0 (clone: send diagnostic messages to stderr, 2013-09-18) > for a similar case in the past.
Nice. This and the above make me feel much more comfortable with the idea of changing git-worktree to send these sorts of messages to stderr rather than stdout.
Show 7 quoted lines
> > I'd be happy to be wrong on the second point -- indeed, git-worktree > > is still marked "experimental" in the man-page, but that may not mean > > anything this late in the game -- and submit a patch which places > > git-worktree's status-like messages on stderr instead of stdout. > > Thoughts? > > I'm in favor. :)
Thanks. I'll drop this RFC patch and resubmit with a patch which just fixes git-worktree to be chatty on stderr instead of stdout.