SIGN IN SIGN UP

fix(git): --quiet is not a third spelling of -s in git show

Found by fuzzing `show` against real git rather than reasoning about it:
`git show -p --quiet` and `git show --quiet -p` both print the patch, so
`--quiet` loses to a patch request from either side. `-s` and `--no-patch`
do play last-flag-wins -- `show -s -p` prints the diff and `show -p -s` does
not -- and modelling all three as one group dropped a patch the user had
asked for, silently, because never_worse then kept the smaller summary.

The two rules are now separate: `-s`/`--no-patch` fold in order against a
patch request, and `--quiet` suppresses only when nothing else asked for
output. Thirteen rows measured against git 2.53 pin the difference,
including the mixed spellings (`--quiet -s -p` prints, `-p -s --quiet` does
not) where the two rules meet.

`run_diff` is unaffected: `--quiet` takes its raw route there, before any of
this is consulted, because in `diff` it really does mean no output plus a
non-zero exit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
N
Nicolas Le Cam committed
f126a11f3d744d0f3a4cbf022b3d631547a54285
Parent: 4a2e58d