We've recently created a branch with a version of code customized for a certain client. We're working on both branches at the same time, commiting 'common' changes into the trunk, then merging them to the branch.
Recently, we've come to a troublesome situation. In trunk/bar.c
we have (among others) a foo()
function. Now, in branch/bar.c
the function was removed, as there's no use for it there. The problems occur when foo()
is modified in the trunk
. When we merge the changes into the branch ("Merge range of revisions"), TortoiseSVN "3-way merge" tool shows a conflict on the method (that is annoying but I can see some reasons in that), but it does also show a whole lot of other changes in the file - which seem to appear out of thin air (looks a bit like if it wanted to show all changes made between the trunk and the branch). And that makes merging much more difficult, as it is littered with some unimportant and old changes.
Did situations like that occur to you? What would you suggest, especially to make spotting important differences easier during merge?
As a (hopefully) temporary resolution I'm going to try and #ifdef
out the removed regions, so that SVN would think the code is still there and have better time with merging. (Unfortunately, that's going to make the code a bit ugly, and getting uglier when more functions are removed.)