Usage Guide: Stacked Pull Requests
import { Steps, FileTree, Tabs, TabItem } from ‘@astrojs/starlight/components’;
Stacked Pull Requests allow you to break down large features into smaller, dependent branches. Instead of one massive 1,000-line PR, you ship ten 100-line PRs that are easy to review and merge.
OpenCodeHub treats stacks as first-class citizens, providing native visualization and management tools that other platforms lack.
Concept: The Stack
Section titled “Concept: The Stack”A “Stack” is simply a chain of git branches, where each branch depends on the one before it.
gitGraph commit branch main commit tag: "v1.0" branch feature/part-1 checkout feature/part-1 commit id: "feat: database schema" branch feature/part-2 checkout feature/part-2 commit id: "feat: api endpoints" branch feature/part-3 checkout feature/part-3 commit id: "feat: frontend ui"In OpenCodeHub, when you merge feature/part-1, the system automatically rebases feature/part-2 and feature/part-3 onto main, keeping your history clean and valid.
Using the CLI
Section titled “Using the CLI”The och CLI is the power tool for managing stacks.
-
Create your first branch Start your stack by creating the bottom-most branch.
Terminal window git checkout -b feature/login-schema# ... write code ...git commit -am "feat: add users table"och pushOpenCodeHub will detect this is a new branch and ask if you want to create a PR.
-
Stack on top Without waiting for review, create the next branch immediately.
Terminal window och stack create feature/login-api# ... write code ...git commit -am "feat: add login endpoint"och pushThe CLI understands that
feature/login-apidepends onfeature/login-schema. -
Visualize the Stack See the state of your entire stack in one view.
Terminal window och stack viewOutput:
(main)└─ feature/login-schema [PR #101] (● Pending Review)└─ feature/login-api [PR #102] (● Draft)└─ feature/login-ui [PR #103] (● Draft)
Server-Side features
Section titled “Server-Side features”When you view a PR that is part of a stack in OpenCodeHub’s UI, you get special superpowers:
- Stack Navigation: A sidebar shows the full tree of related PRs.
- Cascading Merge: Merging the bottom PR triggers a “rebase chain” for all upstack PRs.
- Unified CI: You can run CI for the entire stack to ensure the final state is valid.