Stacked PRs are now live on GitHub

(github.blog)

233 points | by tomzorz 4 hours ago

35 comments

  • matharmin 2 hours ago
    I've been using the preview for a bit, and I'm quite surprised to see them expanding the preview with so many unfixed issue.

    For example, merging an entire stack is completely broken in many cases: https://github.com/github/gh-stack/discussions/212

    You can merge one by one, but if you're using squash and merge, you need a re-approval for each PR in the stack if you require reviews. This makes you lose out on arguably the biggest gain of stacked PRs.

    The command line tooling (gh stack) helps to make things slightly less manual, but you still need to be very aware of how git rebase works, the tooling just helps automate it across multiple branches. For example, just running the "gh stack rebase" commands that the UI suggests won't work if your local branches are not in sync with the remote ones, and the tooling won't point that out to you.

    I do find the stack UI quite nice. It's quite minimal compared to standalone PRs, but it's enough to show the relationship between them.

    (My comments all assume you already have a good reason to stack PRs. This tooling just help to make the workflow easier, it does not give any new capabilities)

    • sameenkarim 1 hour ago
      We're rolling out a series of bug fixes for the issues with squash merging.

      There's an internal system we have called CPRMC (Create Pull Request Merge Commit) that is used to evaluate whether a PR is "ready" to merge. This covers everything from mergeability (checking for merge conflicts) to rule evaluations (ensuring that approvals match the potential commit that will be created by merge) and more.

      This becomes particularly difficult when squash merging a stack of multiple PRs because we have to calculate a series of squashed commits, then associate those back to the rules/reviews. This is relatively easy for the first PR, but for the second PR onwards this gets more complicated because the ancestor commits are squashed and don't exist on the branch as-is. And I won't get into how much more complicated it gets for multi-parent situations lol.

      It's something we need to fix and it's the top priority for the team. Our numbers show that 99% of stack merges go through successfully, but we need to get that much higher.

      Thank you for being an early user in the preview and bearing with us while we work out these issues!

      • masklinn 39 minutes ago
        > There's an internal system we have called CPRMC (Create Pull Request Merge Commit) that is used to evaluate whether a PR is "ready" to merge. This covers everything from mergeability (checking for merge conflicts) to rule evaluations (ensuring that approvals match the potential commit that will be created by merge) and more.

        By the way could there be a way to disable that when doing integrations externally? It seems to be quite costly (which makes sense), and the pull/ refs kinda bloat the reflist.

        I’m sure that external integration is not exactly beloved internally but there’s really just a small handful of big annoyances which would make it so much nicer and more comfortable.

    • selimthegrim 1 hour ago
      what if you stack a draft PR on top of a regular one?
    • ransom1538 29 minutes ago
      If you thought git was complex, wait until you get your 5 deep stacked PR from that nice coworker! Jokes aside this is really an anti-feature. Now coworkers can blow off your PR for much longer.
  • sameenkarim 1 hour ago
    Hey from the GitHub Stacked PRs team!

    Excited to release this more broadly so anyone can start stacking: https://gh.io/stacks

    Would love to hear any feedback, especially with the UI and CLI. We've got a lot more updates to the PR experience in store!

    Also happy to answer questions about the design decisions we made. There's a bunch happening behind the scenes, and it's one of the largest launches in GitHub history covering almost every service from Actions and protection rules to the CLI and mobile apps.

    • leo60228 1 hour ago
      Is support for cross-fork stacked PRs coming in the near future? I was surprised that didn't come before the feature entered public preview, as it seems rather important for the feature to be useful on public repositories.
    • RyJones 20 minutes ago
      This is the feature I’ve missed most from Gerrit. Thank you
  • DDayMace 3 minutes ago
    It's good to have this feature, but it is still up to the individual developers to separate the PR work in a way that can be merged "all or some and in which order". It can make organizing, reviewing and rebasing easier but a PR with repeat, broken or overriding code can screw up just the same. I guess what I mean is, don't expect it to just sort out multiple PRs that wouldn't have worked together without it.
  • steveklabnik 1 hour ago
    This is one of the biggest changes to hit GitHub in many years. I'm really glad to see something like this deployed to one of the largest forges in the world, hopefully it will expose a lot of developers to workflows that they didn't even know about before.

    If you buy the idea that stacking produces better software, then this also has the opportunity to really help out quite a few people.

  • Okkef 2 hours ago
    What's the benefit of this type of stacked PRs over a well-curated set of commits, and reviewing per commit?

    I think the bigger problem is that big AI PR's need a different way of reviewing. For example, the order in which the diff's are shown can make a big difference in how easy the commits are to read (e.g., function definition change first, then all call sites, then the tests).

    Or maybe we should go to a system where diffs & comments are intertwined, a bit like how "Literate Programming" intertwines code and prose.

    Literate diffs / literate pull requests... I haven't found anything like that yet.

    • dastbe 2 hours ago
      > What's the benefit of this type of stacked PRs over a well-curated set of commits, and reviewing per commit?

      For the people who work with stacked diffs (in phab/otherwise) this is exactly what they'd consider reviewing a well-curated set of commits one-by-one.

      One distinction is that cognitively a unit of review (a PR, a diff) remains a single bound change. Comments are focused on that change and the PR does not grow with size of the feature

      Another distinction is the ability to focus each part of the stack to a particular audience. One change may require review from an external team, another may be just your team mate, a third might be the consuming team. By focusing the stack to the different reviewers you can avoid ambiguity about "what a person is signing off on" in the stack.

      aside: one thing that would be great for github reviews is the adoption of change ids such that comments persist across reviews with a rebase workflow.

      • skydhash 1 hour ago
        IMO, in a team settings, improving the review policies and speed has a much better benefit. A PR is supposed to be a proposal for some change, adding more proposals on top of something that is not reviewed is a bit icky.

        > . By focusing the stack to the different reviewers you can avoid ambiguity about "what a person is signing off on" in the stack.

        That can be easily done with comments. If the PR are orthogonal, they could have been split. And if they're not, I would really like to know how the part that I'm reviewing interacts with the rest of the changes.

        • dastbe 50 minutes ago
          > That can be easily done with comments. If the PR are orthogonal, they could have been split.

          Comments are ad-hoc and don't scale, relying on the author to interpret and adhere to the extent of the reviewers approval.

          > And if they're not, I would really like to know how the part that I'm reviewing interacts with the rest of the changes.

          you are free to look up, down, and around the stack; nobody is hiding the code from you. But in many cases this is just unnecessary.

        • a_t48 1 hour ago
          The PRs may be orthogonal but still be dependent. Feature X depends on improvement Y which also needs bugfix Z. You might go and implement X in a branch, tweaking the codebase as you go, but split the branch apart for review. You put X/Y/Z up, but X contains Y and Z, which means you can't request reviews for X without Y and Z merging, or else have a bunch of extra code that gets in the way.
          • skydhash 1 hour ago
            Let's say that Z has an error (some assumption that does not hold), and needed to be reverted. How does that impact X's viability? I wouldn't trust any reviews of X after that.

            I strongly believe that PR should be compared to the main branch, and not rely on unmerged code. Unless you merge everything together in one go. And in the latter case, everything should be reviewed together.

            • a_t48 50 minutes ago
              I think the answer is - it depends! This is why we make good money. I don’t think there’s a hard and fast rule here to apply.
    • dualvariable 1 hour ago
      > What's the benefit of this type of stacked PRs over a well-curated set of commits, and reviewing per commit?

      What I can see is that you can easily append commits to e.g. the first PR in a stack, which would insert them into the middle of sequence of commits.

      This will require rebasing and fixing the subsequent PRs in a stack the same way you'd need to rebase and fix the subsequent commits in a mega-PR. But it makes the right thing easy (keeping all the commits to the foundation of the change together) rather than makin the wrong thing easy (appending fixup commits across the entire change in a random order so that the actual foundational change is lost).

      Keeping all the foundational commits together also keeps all the discussion over the foundational change together.

      You could argue that you'd want to only do the foundational PR and stop, but doing the whole stack of PRs gives the reviewers more information about where you're going, and allows work to continue asynchronously.

    • Cedricgc 1 hour ago
      With stacking you can continue working on a longer change while creating reviewable diffs. Merged diffs can be rebased on your HEAD. For teams that support stacked diffs you don't usually even need to manage branches and work directly off trunk and rebase changes as they come in
    • teeray 1 hour ago
      It’s the “well-curated” part. Many folks treat commits like video game save points, and find providing any kind of message burdensome (e.g. “fix bug”, “do work”). This alone is fine, but then they can’t be bothered to go back and clean it up with `git rebase -i`, so you end up with a mountain of trash in your git log if you don’t turn on mandatory squash and merge. For these folks, the PR becomes the commit. Stacked PRs is revolutionary because it’s as though these developers can finally have multiple commits which comprise a change.
    • paxys 30 minutes ago
      You can’t merge one commit at a time in a PR. In a stack, if the first 4 parts of a feature are good to go and there’s a problem with the 5th, the whole thing doesn’t need to be blocked.
    • IshKebab 5 minutes ago
      1. Github's UI doesn't really support reviewing individual commits in a big PR.

      2. It also can't merge subsets of commits from a single PR. E.g. if you have two commits, A and B, where B depends on A... sure you can make a PR containing A and B, but if A gets approved and B doesn't, then you can't merge A.

      3. The thing you want to do with a set of commits and reviewing each commit IS stacked PRs.

      This is nothing to do with AI.

    • mmlb 1 hour ago
      I've had that same "what's the point" thought every time I've read about stacked PRs, but recently had an (obvious) epiphany. The benefit is you get CI for each commit! I've always hated fixup/typo/fix tests commits and toyed with having a CI check that enforced ci passing on each commit but this drops that need.
      • satvikpendem 1 hour ago
        I don't get it, we already have CI for each commit, at least at our workplace, enforced.
      • skydhash 1 hour ago
        > I've always hated fixup/typo/fix tests commits and toyed with having a CI check that enforced ci passing on each commit but this drops that need.

        Can't you run your CI locally? I know it's not feasible for some codebase, but at least the linting, formatting, unit tests, some integration tests should be able to be done locally.

        • steveklabnik 1 hour ago
          You can't have mac/windows/linux/whatever all locally simultanously.

          Not every project requires this, but for those that do, it's impossible.

          Also, it is much harder to enforce "everyone must run each commit through the CI equivalent properly" than it is when it's on your forge.

          • skydhash 1 hour ago
            > You can't have mac/windows/linux/whatever all locally simultanously.

            Why can't you? That's what VMs are for. And even then, most cross-platform codebases have an abstraction layer that rarely changes. So even testing on one platform can raise your confidence very high.

            > Also, it is much harder to enforce "everyone must run each commit through the CI equivalent properly"

            Again why? I wouldn't care about the dev's local branch. But what is send to the main repo can be easily scripted to run the CI on every commit. You just send the result back with each commit that fails. They can replicate the same workflow on their local workspace as a pre-push process.

    • madeofpalk 2 hours ago
      it's basically a UI for a well-curated set of commits, and reviewing per commit.
    • EduardoBautista 1 hour ago
      I feel it's more of a limitation of the GitHub UI. It is much easier to group together reviews and comments by PR than it is by commits.
    • hoppp 1 hour ago
      I think it is designed for AI Pull Requests. My impression was that it's for reviewing large generated changes.
    • catlover76 53 minutes ago
      [dead]
  • shoyer 10 minutes ago
    When will this support "trees" of pull requests, with dependent changes? In my experience with stacked changes (from Google), it is often the case that changes do not stack up as a linear history. I imagine that would especially be the case these days with parallel coding agents.
  • lucky_cloud 2 hours ago
    Is that why the menu toggle is the stack of pancakes emoji (U+1F95E)?

    Whimsy is fine but that change made me super suspicious about what I was looking at.

    • sameenkarim 1 hour ago
      We've been using the pancake emoji internally so we thought it was a fun easter egg. It'll only be up for a few hours and then will go back to the regular icons :)
      • Waterluvian 2 minutes ago
        I liked it. It’s nice to have little fleeting moments of what I call “Classic Web” feel.
      • patte 3 minutes ago
        I was so happy when I saw that! There is joy and silliness left in GitHub! Thank you!
      • cebert 36 minutes ago
        Good. This change was unexpected and so unprofessional I though my browser was compromised.
        • themanmaran 14 minutes ago
          My lord people accept a little bit of whimsey in your lives.
        • hext 15 minutes ago
          You thought your browser was compromised? Pathetic.
    • robin_reala 1 hour ago
    • ebrahimh 2 hours ago
      For a moment, I thought it was a reddit-style account birthday badge
  • lucideer 1 hour ago
    Started using the gh stack CLI when I first heard of this feature & really liked it - great tooling. Then got approved for the preview & found the corresponding web UI features incredibly underwhelming.

    Pre-approval the CLI tooling effectively enables easier automations around splitting a task into multiple atomic PRs - really great locally but then when you push they just show up as independent unlinked PRs.

    Post-approval... they still show up as independent PRs. There's a small nav drop down up top listing the other PRs in the stack but that's it. Literally no meaningful UI changes.

    The dropdown also allows you to perform a limited subset if the CLI functionality but this is similar to the ability to edit files in the UI - an optional extra casual use feature that won't be a part of dev workflows: the CLI (or IDE plugins I guess) would be the primary way to perform these actions.

    It all left me wondering what the big deal with the preview not being a general release - it's extremely minor optional UI. The stacks cli has been general release since this was announced.

    • sameenkarim 1 hour ago
      I hear you. We had to start with something a bit more minimal, but we are working on a much broader revamp for the PR UI. Part of that will include a persistent view of the stack so you always know you're working with a stack and easily navigate between the layers without a ton of clicks.
  • jasonephraim 33 minutes ago
    I was wondering why there was a pancake icon in my GitHub menu https://github.com/orgs/community/discussions/203497
  • tao_oat 3 hours ago
    Really excited to try this. After using Graphite it's been very hard going back to stack-less GitHub. Hopefully this can make the stacked PR workflow more common and give people an easier alternative to mammoth PRs.
    • theappsecguy 2 hours ago
      I'd recommend git-spice, it's very easy to use and powerful, and of course open-source. I've tried graphite but found that they made it too convoluted for what it is.
      • perspectivezoom 1 hour ago
        I will second git-spice. It does exactly what you want and, importantly, no more than that. There's no upsell to anything else; it's "just" a good tool that knows its purpose and boundaries.
      • literallyroy 1 hour ago
        How does git-spice compare to git-town?
        • theappsecguy 1 hour ago
          I haven't used git-town, but from a cursory look it appears to be a various collection of gitops improvements for day to day things, including some for stacking.

          git-spice is specifically targeted to be useful for PR stacking and doesn't require you to do anything differently from normal git operations that you likely use already. It has a bunch of really nice flows and doesn't try to step outside the bounds of what is needed to easily stack PRs

  • sepeth 2 hours ago
    One of the nice things about jujutsu related to this is that when you update a branch, it rebases other branches started off of that branch. I often switch to jj if I want to split my work for easy reviewing, and it works great colocated with a clone created with git.
  • yreg 25 minutes ago
    This page is unreadable for me (on iOS). The videos keep autoplaying and making themselves full screen.
  • paxys 26 minutes ago
    This is a huge feature if implemented well. Going from big organizations with their own custom-built versions of PR stacking back to vanilla GitHub was a huge productivity hit for me.
  • johsole 2 hours ago
    Stacked PRs have been great, a huge boon for me. I was using it before the UI support, just on the command line. `gh stack rebase` is too useful.
  • rrradical 2 hours ago
    I thought 'stacking' PRs was useful in two circumstances.

    1. The PRs are across different related repos, so they literally can't be combined into one PR.

    2. You want to keep producing work while the first PR is in review. So you stack subsequent PRs onto the same branch. Basically just pipelining.

    But this feature doesn't seem to hit either use case, and instead just seems to be a different form of stacking commits into a single PR. The standard advice has always been to make atomic and meaningful commits (using e.g. rebase to tell a nice story for the reviewer). And reviewers can go through commit by commit if they like.

    What am I missing?

  • zxspectrum1982 13 minutes ago
    I don't like this.

    The case where I need stacked PRs is when I have a ton of changes and I want to upstream them. I have so many changes that I have probably written code in this order: 1. feature1 work 2. feature2 work 3. architecture rework 4. docs 5. feature3 work 6. optimization 7. docs 8. feature4 work 9. security fixes 10. optimization 11. docs 12. last pass security fixes

    By the time I want to upstream, I probably want to reorder my commits and generate on PR per theme (arch, feature1 + docs + optimization, feature2+docs + optimization, etc) before I submit a bunch of PRs.

    GitHub stacked PRs solve none of my problems. Stacked PRs doesn't take care of the reordering of commits, it doesn't take care of rebasing changes, it adds very little on top of what I was already able to do by saying "this is PR 1 out of 7, this is PR2 out of 7 and build on top of the branch that I used for PR1/7, etc".

    Hugely disappointing, bordering useless.

    • IshKebab 2 minutes ago
      > it adds very little on top of what I was already able to do by saying "this is PR 1 out of 7, this is PR2 out of 7 and build on top of the branch that I used for PR1/7, etc".

      That's literally all it's supposed to do. Make that dev flow less awful so you don't have to say "by the way this PR depends on #123, I will change the target branch when that is merged" and nonsense like that.

  • jeremy_k 2 hours ago
    Been using it over the last week. Only complaint I had was that `gh stack rebase` was struggling rebasing after squash merges but I got a response that the rebasing had been improved so I'm looking forward to trying that out.
  • santoriv 32 minutes ago
    The important question in the age of PR metrics as a yardstick for keeping your job:

    When you click merge, does a 3 stack PR show up as 1 PR in the Dx metrics or 3?

  • smb06 19 minutes ago
    As one of my colleagues said - "only took them 5 years"
  • 8260337551 2 hours ago
    Rejoice, finally a new feature that isn't AI related.
    • techscruggs 2 hours ago
      I get your point, but it kind of is AI related. The size of PRs since AI has made it much harder to review a diff. Stacking the PRs seems like a response to this problem.
      • amethyst 1 hour ago
        We were benefiting from stacked pull requests in Phabricator for a decade before "AI" was a thing. Having well scoped commits that can be individually actioned by distinct sets of reviewers has always been extremely useful.
    • smoll 2 hours ago
      Not AI related, but I plan on having my agents use this heavily so I can review PRs in bite-sized chunks instead of all at once.
  • ligarota 36 minutes ago
    What the difference with just two PR with the second PR targeting the first one??
  • camilomatajira 3 hours ago
    I have been using it for a while and it has been useful. One feature that I am still missing is to be able to stack PR across repositories. In other words, I want this stack to contains some PRs to the backend, some to the front, and some to ArgoCD in some specific order.
  • Insimwytim 2 hours ago
    I feel like many people (and industry in general) complicate things unnecessary.

      Stacked pull requests break large changes into small, reviewable pull requests. 
    
    That's how pull requests are supposed to be, no? If yours aren't that - you ought to rewrite them.

      With stacks, you can independently review and check each pull request, then merge everything together in one click.
    
    Why would I want to do that instead merging (and deploying/testing) separately, which gives me more reliability?

      No more opening a single large pull request that takes forever to review, or splitting work across multiple branches you have to keep manually rebasing.
    
    Well, it doesn't seem like a simplification over dreaded "manual rebasing". And the target branch still moves, doesn't it? So, how are you "saved" from rebasing?

    It's like responsibility is shifted from the author to the tool. That has been tried before, and every time it seem to consistently produce a similarly shaped mess in a different area of a process, but with an added bonus of the tool's own problems and restrictions.

    • mrkeen 24 minutes ago
      I don't mind rebasing, so that's not really an issue.

      The problem I sometimes have is when I queue up 4 or 5 PRs in the afternoon and expect someone to take a look in the morning.

      The diff of A into master looks OK, but then the diff of B looks like AB, and the diff of C looks like ABC - each PR has changes that will have already been merged once earlier PRs have been accepted.

      My way around it was to raise E as a PR into D, raise D as a PR into C, etc. Then once approved, I change their destinations back to master for the actual merges.

      It really confuses reviewers though, even though it's meant to make it so they only see the appropriate changes.

    • tao_oat 1 hour ago
      Here's a common flow where I find stacked PRs are useful:

      - I want to build feature X

      - Ah, but it would work better if I refactored the module first

      - I refactor then build feature X

      - There's then some additional (and optional) cleanup work

      As a reviewer I wouldn't want to see all this in a single PR, and the changes depend on each other so I can't open multiple independent PRs. Manual rebasing is fine but navigating the GitHub UI is then annoying, I have to mentally keep track of where I am in the stack.

      • mchristen 1 hour ago
        Those could just be individual commits on a branch. Why does it need to be a stacked PR? That concept really only exists within the interfaces of these kinds of tools.
        • andrewaylett 1 hour ago
          They don't. But reviewing individual commits in the GitHub UI is hard.

          A set of stacked PRs is exactly the same as a line of commits. The only difference is the UI, but the UI is the important bit here because lack of UI is what's stopping folk from doing that today.

          Even when I've developed my changes as a stack of commits, I'll feed them to my team one commit (and one PR) at a time so they're easier to review — and I discovered that GitHub had turned on stacked commits UI because for one particular project I'd manually created a set of PRs in advance (with the right bases) and GitHub offered to create a stack out of them.

          • 4lx87 28 minutes ago
            > They don't. But reviewing individual commits in the GitHub UI is hard.

            So instead of solving that problem, GitHub developed tooling around a workaround for that problem (targeting a PR at another branch that also has a PR).

            Expanding reviews to allow per-commit reviews avoids the need for managing additional branches and all the headache that comes with it.

        • esafak 38 minutes ago
          They could but they don't belong together. A PR should be about one thing. Refactoring one module for another's sake should be done in another PR. If not for reviewing, for revertability, and future debuggability.
      • kazinator 1 hour ago
        I certainly don't want to see that in a one commit. A PR has one more more commits, though.

        The commits in a PR are already a stack of patches, and so PRs are already "stacked" as they are.

        If feature X depends on the refactoring (cannot be rebased on the un-refactored upstream), it's part of the change; you can't just merge the feature and not the refactoring.

        If the two are separable that way then, sure, it makes sense to ask for them to be separate PRs.

      • Insimwytim 1 hour ago
        I do that too. I do introduce changes in separate PRs. They could be related to the same problem and referenced accordingly.

          and the changes depend on each other so I can't open multiple independent PRs
        
        Why? Is it a technical restriction? Tightly coupled architecture is not the best solution anyway.
        • malcolmgreaves 1 hour ago
          A refactor and then a feature implemented on that refactor is tightly coupled by definition. It would not make sense to implement the feature and refactor independently, because you’d be wasting time implementing a feature that you would have to refactor again.
          • pyth0 57 minutes ago
            This is literally the point of stacked PRs. You implement the refactor in branch A, then branch B is created on top of that so you can implement your feature. Then you make separate PRs, one for merging branch A into main, and another for merging branch B into A. The GitHub feature just provides a nicer UX when interacting with such PRs by clearly showing dependency and allowing you to merge a stack together.
    • kazinator 1 hour ago
      I also don't get it.

      > With stacks, you can independently review and check each pull request, then merge everything together in one click.

      Consider:

      "With pull requests, you can independently review and check each commit inside the pull request, and then merge the entire pull request in one click."

      Pull requests are stacked commits. This does not have to recurse; you don't need stacked pull requests, not to mention stacked pull request stacks.

      A commit can already contain changes to multiple files. In many cases, even a complex change can be just one commit. A sequence of multiple commits handles all the remaining cases.

      Stacked PRs sound like a use case for someone who never wants a PR to be a container for multiple commits, such that if a unit of work is best done as three commits, they want them in separate PRs. Oh, but now they are not related together, the way a stack of commits is related under one PR, so we need a meta-PR to contain PRs or something.

      This could be a consequence of commits being sort of second class citizens in the GitHub UI compared to PRs. If you want a commit to be treated as PR, on the same level, you must create a PR with nothing but that commit. So then, what would have been a single PR with four commits that you could merge with one click is now four PRs. Which you want to be able to merge them with one click.

      • masklinn 28 minutes ago
        > With pull requests, you can independently review and check each commit inside the pull request, and then merge the entire pull request in one click

        Except you can’t really do that on GitHub, the “unit if review” is the PR so reviewing commits is adhoc, inconsistent, and awkward, and tracking their changes as they get fixed up is a pain. “Splatting” that as PRs is not the nicest way to do it green field, but it’s an evolution that makes sense in GitHub’s model.

  • efromvt 2 hours ago
    Praise be, stacking is such a better ux for separating out a feature diff into distinct component units and native support makes it easy.
  • pzmarzly 1 hour ago
    Does it work across forks, or is it same repo only (like gh-stack et al)?
    • cassidoo 1 hour ago
      Currently same repo only, fork support coming soon.
  • ymir_e 2 hours ago
    Lately I've seen a lot of people complaining about GitHub downtime, performance and overall quality.

    Happy to see something in the right direction. I think they've woken up a bit. Still surprising how slow things can move at big companies.

    Companies like Linear, Vercel, Zed and Cursor all seem to be looking at GitHub more aggressively though. I do suspect there will be more competition shortly.

  • msalsas 1 hour ago
    I don't see the point of this. Just keep your PRs small.
    • pyth0 1 hour ago
      That is in fact the point of this. Split your large feature into smaller, more manageable PRs and have them still be connected within GitHub.
  • bmitc 32 minutes ago
    The linked blob post says "public preview". That doesn't mean actually released or live, does it?
  • hungryhobbit 2 hours ago
    Both GitHub and GitLab have recently released new stacked MR tech: I guess everyone is submitting giant AI-authored PRs these days, and there's a real need to break them up into human-reviewable chunks.

    Both are an improvement (GH's seems a little better, with their one-button merge that GL lacks) ... bit both are so incredibly "meh".

    When are we going to see the major hosts give tools designed to help facilitate human code review? Simple example: lets say I want to leave notes in my PR (MR on GitLab). I can use the review comments to do so, but then I have a million comments to resolve at the end before I can merge, my comments look just like the reviewer comments (with extra UI for replying that's unecessary), etc.

    It'd be so easy to just have a "sign post" feature to let authors annotate their code before reviewers review it ... and nobody offers this, or any other features focused on actually helping humans review. It's all just new command line features that save a bit of rebasing (which Claude can do just fine on its own).

    • jaredsohn 2 hours ago
      Or even just let me make a thread in github without associating it with files / a line of code. I hate it when conversations span top-level messages.
  • OJFord 2 hours ago
    Spicy opinion: a reinvention of commits by and for people who use commits like 'File > Save'.

    ...but if the end result is more popularity of 'stacked' logical changes, yay anyway?

  • _doctor_love 1 hour ago
    I must be in a minority of some kind. I still think stacked PRs are the devil and a band-aid for org and process issues.
  • Chyzwar 1 hour ago
    Lol, maybe they should first fix large PRs crashing/freezing UI.
  • piyushsingariya 2 hours ago
    Finally. Something we got
  • cabyambo 1 hour ago
    [flagged]
  • thenewguy077 1 hour ago
    Another reason that increases the possibility of github’s outages…