← Back to context

Comment by tcoff91

20 hours ago

Let's compare 2 approaches to delivering commits A, B, C.

Single PR with commits A, B, C: You must merge all commits or no commits. If you don't approve of all the commits, then none of the commits are approved.

3 stacked PRs: I approve PR A and B, and request changes on PR C. The developer of this stack is on vacation. We can incrementally deliver value by merging PRs A and B since those particular changes are blocking some other engineer's work, and we can wait until dev is back to fix PR C.

> You must merge all commits or no commits

This seems to be the root of the problem. Nothing stops a reviewer merging some commits of a PR, except a desire to avoid the git CLI tooling (or your IDE's support, or....). The central model used in a lot of companies requires the reviewee to do the final merge, but this has never been how git was meant to be used and it doesn't have to be used that way. The reviewer can also do merges. Merge (of whichever commits) = approval, in that model.

  • Yes, the root of the problem is the workflow of the company being centered around GitHub instead of Git itself.

    This feature helps improve GitHub so it's useful for companies that do this this way.

    At our company, only admin users can actually directly git push to main/master. Everything else HAS to be merged via github and pass through the merge queue.

    So this stacked PRs feature will be very helpful for us.