SIGN IN SIGN UP

fix(git): stop the log limit and the body suppressor overreaching

Two consequences of earlier fixes on this branch, both caught by fuzzing
`log` and `show` against raw git.

The raw-shape `git log` passthrough capped every walk at 10, including one
the user had already bounded: `git log -p HEAD~15..HEAD` came back with 10
of the 15 commits it named. The cap exists because that route streams
straight to the terminal and an unbounded patch request printed the entire
history, so it stays -- but a revision range is an exact bound the user
chose, and it is now left alone. When the cap does apply it says so on
stderr, since there is no footer or tee on that path to notice the missing
commits from.

`run_show` read `-s`/`--no-patch`/`--quiet` as an order-independent "any",
where git resolves them against `-p`/`--patch`/`-U<n>` by last flag wins:
`git show -s -p` prints the diff and `git show -p -s` does not (git 2.53).
A patch requested last was therefore swallowed, and never_worse kept the
smaller summary, so it vanished without trace. `emits_word_diff` in the
same file already modelled this correctly.

`git show --oneline` no longer prints its summary line twice. The stat step
passes `--pretty=format:` to suppress the commit header, and the user's
`--oneline` outranked it by the same last-wins rule, so that step reprinted
the header the summary step had already produced. The step drops `--oneline`
from what it forwards rather than appending its own flag afterwards: past a
user `--` that flag would be a pathspec, which is the failure this branch
exists to prevent -- and an integration test caught the first attempt doing
exactly that.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
N
Nicolas Le Cam committed
1b331545fbcaacd73f290871ea5c4d945dc31ec3
Parent: b6755bf