I bet you could find 10 people with 11 opinions about this, so here is one of mine:
1. For simple flows that are mostly straight python code, there isn’t much code change in the flow. Absolutely within what is reasonable for a branch.
2. For flows that use libraries like shell-tasks, dbt etc, there will be some minor changes. but still nothing big.
3. Some more complex flows with a lot of prefect1-specific code might need more refactoring. I had to rewrite a little because I used to run tasks inside of tasks. But still not unreasonable to keep in a separate branch.
4. The big change might be in deployments/registering flows. This is where you see the big code change, and possibly structural changes to your repo.
We started a separate repo for our prefect2 flows, partially because we changed the structure and how we registered the flows, and partially because we wanted to run in parallel for a while.
We did not change the infrastructure at all (Azure AKS), we just spun up another agent. One thing I would have done differently today, is to (as far as possible) define all blocks as code so that we could have git-ops’ed those as well.