Some of us like "interdiff" code review
Interdiff / incremental review model
- Many agree with the article’s core claim: reviewing “versions of a patch stack with interdiffs” is far clearer than GitHub’s “diff soup.”
- Interdiffs let reviewers see only what changed since the last round, without fixup commits or rebases obscuring context.
- They work well whether changes are a single logical unit or a multi-commit series.
Gerrit / Phabricator / Review Board vs GitHub / GitLab
- Gerrit and Phabricator are widely praised for:
- Treating the commit/patch as the unit of review.
- Native stacked changes, interdiffs, and “attention set”–style workflows.
- GitHub is seen as author-friendly but reviewer-hostile: vertical-space-heavy UI, weak handling of rebases/force pushes, comments going “outdated,” and poor big-picture discussion.
- Some say GitLab supports versions and interdiff-like views, but its naive handling of rebases and very slow UI are major complaints.
- Review Board is cited as an early system with good interdiff support.
Stacked commits, PRs, and rebasing
- Many want small, logically independent commits that all build and pass CI, organized as stacks.
- GitHub’s branch/PR model makes stacked diffs clumsy; dependent PR chains are fragile, especially for external contributors.
- Some teams emulate stacked diffs with fixup commits + interactive rebase, or with “stacks of PRs,” but this is error‑prone and UX-hostile.
Squash vs preserving history
- One camp favors squash-merge for clean mainline history and CI‑green bisect points.
- Another camp insists on keeping fine-grained, ordered commits to aid
blame,bisect, and understanding design evolution. - Several note the ambiguity between “squash all into one” vs “squash WIP/fixup into meaningful atomic commits.”
Email workflows and git-range-diff
- The email +
git format-patch+git range-diffmodel is held up as the conceptual gold standard for interdiff review. - Pros: perfect incremental review trail, strong threading, good for long-lived series.
- Cons: email UX is considered painful and discouraging for many.
Tools and alternatives
- Multiple tools are mentioned that try to bring stacked diffs/interdiffs to GitHub (Graphite, Aviator’s CLI, ghstack, spr variants, Sapling, Jujutsu, stgit).
- Experiences vary: some report big productivity wins, others report bugginess, complexity, and churn.
- There is interest in new VCS or higher-level models (Sapling, Jujutsu, Pijul, Mercurial) that better support stacks and history editing.