all 16 comments

sorted by: hot top controversial new old
[–] 3 points 1 month ago* (last edited 1 month ago) (3 children)

I've recently picked up jujutsu, and it plus gitlab's stacked PR have made splitting up MRs a breeze. Typo in a commit at the top of the chain? "jj edit revision", fix the typo, then "jj git push".

  • source
  • hideshow 3 child comments
  • [–] 1 point 1 month ago (2 children)

    Do you mean GitHub? Last I checked Gitlab doesn't support stacked PRs.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 1 month ago (1 child)

    No I meant gitlab. I have been using them for a week or two now, I guess it's a recent addition

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 1 month ago

    Ah yeah looks like the latest 19.1 release from June.

    But it also seems to suggest it's only a UI change. Is is possible to do stacked MRs across forks? Does it not still suffer from the flaw GitHub has (or had, hopefully) - you create one MR, myfork:feature_0 -> upstream:master. That's fine, but then you want to create the second MR targeting the first MR, myfork:feature_1 -> ???:feature_0, only you can't. feature_0 doesn't exist in the upstream and there's no point creating an MR targeting your own fork.

  • source
  • parent
  • [–] 3 points 1 month ago (6 children)

    Maybe I'm being dumb but I don't see the point? Just be disciplined in creating smaller PRs?

  • source
  • hideshow 6 child comments
  • [–] 5 points 1 month ago (3 children)

    That is the point. By making smaller PRs, you inevitably end up with dependencies between them. So you'd like to stack them.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 1 month ago (2 children)

    Maybe I just don't know enough how these work, as I've never heard of stacked prs before.

    What does the workflow look like? Can the first PR be merged and deployed without the other prs being approved and merged first? Or do they all need to be approved and it all gets merged together?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 4 points 1 month ago

    We’re keen to use stacked PRs at work.

    We’re using agentic coding heavily, but still reviewing code to help us steer the software architecture and keep our understanding of the implementation. We generate large changes quickly, but need to break them into smaller, logically ordered PRs for review.

    It’s nice for the reviewer to be able to look ahead through the full change, so they see can check the big picture, rather than merging a couple of PRs and then spotting that the abstractions are wrong.

    PR stacks work very well for providing this kind of visibility, but are annoying to merge. After one PR in the stack is merged, the next PR needs to be rebased onto and targeted to the updated main branch. With our branch protection rules, this triggers another CI run and dismisses the PR approval, requiring human intervention.

    It would be much nicer to have the reviewer go through all the PRs and then merge the stack in one go.

  • source
  • parent
  • [–] 2 points 1 month ago

    This looks useful for keeping a long change reviewable without leaving a branch open for a fortnight. Most of my pain with big PRs was never the size of the diff, it was that it had been diverging from main for two weeks before anyone opened it.

    The discipline doesn't go away though, it just moves. If the bottom of the stack sits unmerged you still have a long-lived branch, with everything else stacked on top of it.

  • source
  • [–] [S] -1 points 1 month ago (3 children)

    im not sure if I care tbh. seems gimmicky

  • source
  • hideshow 3 child comments
  • [–] 6 points 1 month ago (1 child)

    It seems like something we allready do at work, with feature-branches that collect multiple prs that are required for a feature, but with some proprietary bits and bops instead of an internal procedure and standard git features.

    i guess it's nice for people who use github in their team, but it furthers lock-in.

  • source
  • parent
  • hideshow 1 child comment