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

A 914-file pull request: every file, scrolled and marked Viewed.

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

  1. It lists every file. It pages through GitHub's file list, up to GitHub's own limit of 3,000 files.
  2. 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.
  3. 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.
  4. 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.

Open the PR everyone's been avoiding.

Free while in beta, under 10 MB, and it signs in through your GitHub CLI.

Download for Mac

Your download is on its way.

Three quick steps and you're reviewing.

  1. Open the .dmg and drag Mergiato to Applications.

  2. First open: macOS asks once. System Settings → Privacy & Security → Open Anyway.

  3. No GitHub CLI yet? Install it and sign in:

    brew install gh gh auth login
Didn't start? Download it here.