Review
A hundred files should still be a readable page
Diff rendering is where forges get slow, and it is slowest exactly when the review matters most.
Rendered on the server
The browser receives HTML, not a diff library and a JSON payload to assemble. There is no spinner between opening a pull request and reading it, and a large diff degrades into a long page rather than a hung tab.
Against the merge base, not the base tip
This one sounds pedantic and is not. A diff against the tip of the base branch includes every change somebody else landed while your branch was open, and asks the reviewer to approve those too.
The merge base is where the two histories parted. The diff from there is exactly the author's work, which is the only thing anybody is being asked to approve.
What is collapsed, and what is said about it
Lockfiles, build output, and vendored directories start collapsed, as does any single file over five hundred changed lines. Nothing is hidden silently: a collapsed file still shows its path and its counts, and opens in one click.
- Renames and copies detected by git, not guessed from the path
- Binary files, mode changes, and submodule bumps each render as themselves
- Whitespace-only changes hidden behind a toggle
Long lines scroll inside the file
A diff with one very long line must not push the whole page sideways, because then every other file on the page scrolls with it.
Review a large change without fighting the interface
The diff parser is tested against the shapes that break parsers: renames, missing trailing newlines, and binary files.