• Miaou
    cake
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    2 days ago

    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”.

      • Miaou
        cake
        link
        fedilink
        arrow-up
        1
        ·
        2 days ago

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

        • FizzyOrange@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          1 day 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.

  • nark3d@thelemmy.club
    link
    fedilink
    arrow-up
    2
    ·
    2 days 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.

  • blackn1ght@feddit.uk
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    3
    ·
    3 days ago

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

      • blackn1ght@feddit.uk
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 days ago

        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?

        • Miaou
          cake
          link
          fedilink
          arrow-up
          2
          ·
          2 days ago

          Assuming it’s like gitlab’s stacked PRs, all the merge requests are independent. It’s basically “just” rebasing the stack once the bottom gets merged.

    • ftp@feddit.uk
      link
      fedilink
      arrow-up
      6
      arrow-down
      2
      ·
      3 days 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.

    • Dunstabzugshaubitze@feddit.org
      link
      fedilink
      arrow-up
      6
      ·
      3 days ago

      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.

      • kauraaaa@sopuli.xyz
        link
        fedilink
        arrow-up
        2
        ·
        3 days ago

        agreed, happens in our org quite often as well previously just done via separate chained PRs and required rebasing after each merge