- pick the last known "good" revision
- compile, to check whether things work
- apply the patch to that revision
- compile, to check whether things work (possibly also run some functionality tests)
- pick a step size (100 revisions seems to be a good start)
- run an update for this step size
- check if there were merge errors
- compile, to check whether things work (possibly also run some functionality tests)
- if things worked, save your current progress in a new patch file, and go back to step 1, until you reached the current revision.
- in simple cases, you try to fix the errors directly by looking at the context, then proceed with step 7
- if nothing helps, go back to step 1, and choose a smaller step size in step 5, to isolate which revision failed, then check that revision for clues how to fix your errors (often it contains similar changes in other places)
you should not try to bump two patches simultaneously. bump each patch individually and then merge them in the end.