Azure DevOps - Is anyone doing the Release Flow branching strategy that would mind providing guidance?

Is anyone doing the Release Flow branching strategy that would mind providing guidance? I’ve used gitflow and GitHub flow before, but never Release Flow, so I only know what I’m reading online. I’ve drawn up some mockups of how I understand it.

Is it better to:

  1. Do bugfixes on the release branches themselves?
  2. Do bugfixes on main and cherry-pick to release branches?
    #2 seems simpler, but seems like you could end up with strange merge conflicts due to the feature changes on main that do not exist in the release branch. Any suggestions would be appreciated.

We use Release Flow on most of our large codebases. And yes, we opted for #2. The main, rather sad reason, was that we initially tried #1 and people would literally forget to cherry pick the important hotfixes back to master. Not often, but it would happen enough that we switched over to always, always, hotfixing master first, regardless.

Yes, it can lead to awkward merge conflicts, and that sucks - but it’s the lesser of the evils, in our experience at least.

In a previous role, we used option #2 as well for the same reasons that mentions above…

In a previous role we mostly used option 2 for the reason mentioned, and placed a PR template in the release folder to ask the question. In the very rare (once in a year I was on the team) that a fix did not require to go back to master then we followed option 1.