Large pull requests
Review the 900-file pull request without clicking Load diff.
Big pull requests happen: a dependency bump, a rename across the codebase, a refactor an agent opened overnight. Mergiato shows every file GitHub has, up to 3,000, and draws only what's near your view, so a 914-file PR opens in 0.2 seconds and scrolls like a small one.
Free · no sign-up · Apple silicon and Intel Macs
Where large diffs get stuck
- On github.com, big files hide behind a Load diff link, so you open them one at a time and can miss the one that matters.
- GitHub's diff API refuses a pull request over 300 files or 20,000 lines, which is where many tools built on it give up.
- Some review tools show the first 50 files or so and leave the rest for later.
How Mergiato shows every file
- It lists every file. It pages through GitHub's file list, up to GitHub's own limit of 3,000 files.
- It rebuilds the diff when GitHub won't send it. If GitHub refuses the whole diff as too large, Mergiato builds it from each file's patch instead. A file GitHub sends no patch for at all says so.
- It draws only what's near your view. Files far above or below hold their place with an empty block of the right height. On a 914-file PR the page keeps about 30,000 to 40,000 elements wherever you scroll, where drawing everything would need more than 300,000.
- The screen doesn't jump. When a file above you fills in, the scroll position is corrected so what you're reading stays put.
Getting through it, file by file
-
Lockfiles and generated files start folded:
package-lock.json,pnpm-lock.yaml,Cargo.lock,go.sum, minified bundles, source maps and snapshots. Deleted files too. - Viewed marks fold a file away and jump to the next one. If the file changes again, its mark resets.
- Filter by path, or show only files with review comments.
- List or tree, unified or split, with syntax colors.
- One commit at a time, when the PR was built that way.
Questions
What happens past 3,000 files?
GitHub itself lists at most 3,000 files for a pull request, so that's the ceiling for any tool built on GitHub. Mergiato shows all of them.
Do I need a local clone for big diffs?
No. Everything comes from GitHub through the GitHub CLI. A clone is only for the optional terminal.
Does it keep a big diff in memory between visits?
It keeps the diff for the PR's current commit while the app runs, so going back to it is instant. New commits bring a fresh copy, and an unused one is dropped after 10 minutes.
Free while in beta, under 10 MB, and it signs in through your GitHub CLI.