I have a long-lived feature development branch, let's call it dev-foo. The problem is that when I try to merge it into release-1, I get all kinds of horrible tree-conflicts and source conflicts that don't make any sense. I've re-integrated them into a new trunk-based branch, along with other features that want to be integrated together. Every merge that I attempt to do to or from this integration branch is similarly horribly conflicted. What can I do?
I strongly suspect that one of the merges from trunk in your development branch was accidentally broken by you somewhere in the process of resolving conflicts and committing it. This means that the merge history of your development branch is "poisoned" and merging it will only prolong the pain and suffering for you and everyone else.
Take heart, all is not lost!
Here is the method that I used to "reconstruct" broken development branches for the purposes of re-integration without bringing in the previous broken merges from trunk: