Git makes backporting relatively simple, although git cherry-pick tends to fall over once branches diverge a lot. I would say for the 1.2 branch which diverged 7 months ago, roughly ⅔rds of the patches applied straightaway, which I think is pretty good considering how much the code has changed.
Cherry pick can’t however deal with file renames, so there were some patches that I had to edit and apply manually. Apparently there is something you can do with git merge to deal with that, but no one has explained that yet in a way I can understand.
It’s also interesting how a > 6 month old branch is still getting so many fixes!