On Tue, Nov 30, 2021 at 3:47 PM Jeff King <peff@xxxxxxxx> wrote: > 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@xxxxxxxxxxxxxxxxxxxxx/ Thanks for the reference. I'll take a stab at adding a blurb about this to CodingGuidelines. > > (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. > > 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.