Managing Complex Code Reviews? RevUp Your PR Stack
If you've ever worked on a large feature or refactor, you've felt the pain. You make one foundational change, but to keep things reviewable, you need to split it into a series of dependent pull requests. Manually creating, ordering, and updating that "stack" of PRs is a tedious, error-prone chore. What if your toolchain could handle that for you?
Enter Revup, an open-source tool from Skydio that automates the creation and maintenance of stacks of interconnected GitHub Pull Requests from a single branch. It turns a messy, manual process into a clean, automated workflow.
What It Does
Revup is a command-line tool that integrates with Git and GitHub. You work in a single branch with multiple logical changes (as commits). Revup then analyzes your commit graph, creates a separate PR for each top-level commit and its ancestors, and sets up the correct base branches so the PRs form a dependent stack. If you update your source branch, Revup can automatically update the entire PR stack to reflect the new changes.
Why It's Cool
The magic is in the automation of a workflow many senior developers have built manually with scripts and sheer force of will.
- Commit-Driven Workflow: You structure your work with clear, logical commits. Revup uses this structure to define the PR boundaries. This encourages good commit hygiene.
- Automatic Stack Management: No more manually changing PR base branches or titles. Revup understands the dependency graph and manages it for you.
- Incremental Code Review: Reviewers can look at the stack from the bottom up, understanding the foundation before the features built on top. This leads to better, faster reviews.
- Update Propagation: When you amend an early commit in the stack, Revup can rebase the subsequent commits and update all the corresponding PRs, descriptions, and GitHub's "linked" PR pointers.
It takes the Git-centric philosophy of crafting good commits and extends it all the way through to the code review platform.
How to Try It
Revup is a Python tool available on PyPI. You can install it and get started in a few minutes.
- Install it:
pip install revup - Configure it: You'll need to set up a GitHub personal access token. The Revup README has clear setup instructions.
- Use it: The main command is
revup upload. After making your commits, run it. Revup will create the PR stack, post them to GitHub, and output the links.
Check out the GitHub repository for comprehensive documentation, examples, and the full command reference.
Final Thoughts
Revup tackles a specific but significant pain point in the developer workflow. It won't be for every project—if your work typically fits in a single PR, you might not need it. But for teams working on complex systems, monorepos, or just valuing incremental, reviewable changes, it looks like a game-changer. It formalizes a "best practice" advanced workflow and makes it accessible. I'm adding this to my toolbox for the next time I need to untangle a big change into reviewable pieces.
Follow for more interesting developer tools: @githubprojects
Repository: https://github.com/Skydio/revup