This is what Kinetic Merge was written to handle: https://github.com/sageserpent-open/kineticMerge.
It merges changes on one branch through code motion on the other branch.