Re: Git branch outputs usage message on stderr
- From
- Jonas Konrad <jonas.konrad@uni-muenster.de>
- Date
- Jan 15, 2025, 14:47 UTC
- Message-ID
- <17c78893-d200-4646-a81b-28f32bcf958e@uni-muenster.de>
- In-Reply-To
- <D72M6S9O1E9F.WVEBV7ZJ1JTC@cepl.eu>
Well, let me add that one detail: I could not find any other git sub command which behaves the same (admittedly haven't tried all). Instead, the ones I have tried give their help output usually on stdout. Try yourself with `git -h`. It perfectly acts according to what I'd expect (exit status 0). Where as `git reflog -h`outputs to stdout but still exit with non-zero status (which seems okay). `git branch -h` adds a third way, as described. I argue: That diverging behavior is confusing to the user.
If your claim was right, this bug report got even bigger as a lot of behavior from other subcommands would have to be changed. In fact, what "substantial material" is, has to be defined for every piece of software regarding each output. However, I cannot see how one subcommand's usage message is considered "substantial" whereas another subcommand's usage message is not (besides, I guess, `git branch` is more frequently used than `git reflog`).
Best, Jonas
On 15.01.25 12:36, Matěj Cepl wrote:
Show 17 quoted lines
> On Wed Jan 15, 2025 at 12:22 PM CET, Jonas Konrad wrote: >> What did you do before the bug happened? (Steps to reproduce your issue) >> I opened a terminal on Arch Linux with a bash shell and called `git >> branch -h` to get a usage overview of git's `branch` command. I then >> tried processing the output with `grep` by `git branch -h | grep list` >> which gave the whole (unfiltered) output, i.e., the displayed message >> was not processed by `grep`. > And that is exactly the correct behaviour. In the world of UNIX, > where pipes are normal, utilities should send to the stdout > only substantial material, which could be processed down the > pipeline. Error messages, help, and similar diagnostics, should > go to stderr. Also, you know about `|&`, right? > > Best, > > Matěj >