Stacked PR landing workflow is awkward whether landing from bottom or top
Author: omryCreated Jul 5, 2026Updated Jul 17, 2026
What is the recommended way to land a stacked GitHub PR series with Sapling?
I created the stacked PRs with sl pr submit. For a stack like:
B top PR
A bottom PR
mainI tested both obvious landing workflows on GitHub, and neither was a good experience.
If I land the bottom PR first:
Alands.- The remaining PR for
Bcan still carry the old local copy ofA. - GitHub may show
Bas conflicting. - Recovery requires a manual loop:
sl pull
sl rebase -s <first-still-open-commit> -d remote/main
sl pr submitThen repeat for the next PR.
If I land the top PR first:
- The final combined diff lands on
main. - The lower PR remains open.
- The lower PR becomes conflicting/dangling and must be closed manually.
- The stack is effectively collapsed into the top PR rather than landed as a stack.
So bottom-first becomes a land/rebase/submit loop, while top-first leaves lower PRs behind.
Is there a Sapling-native workflow for landing a stacked GitHub PR series cleanly? Ideally Sapling would either provide a command for this, document the expected sequence, or guide recovery when a landed lower GitHub PR leaves the remaining stack carrying an already-landed commit.
Source: facebook/sapling