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