Recently, we created a branch with a version of the code configured for a specific client. We simultaneously work on both branches, making “general” changes in the trunk, and then combine them with the branch.
Recently, we have faced a difficult situation. In trunk/bar.cwe have (among other things) a foo()function. Now, in branch/bar.c, the function has been deleted, since there it is not to be used. Problems arise when foo()changes in trunk. When we merge the changes into a branch ("Version merge range"), the TortoiseSVN "3-way merge" tool shows a conflict on this method (it is annoying, but I can see some reasons for this), but it also shows a whole bunch of other changes in the file that seem to appear from under the air (a bit like if he wanted to show all the changes made between the trunk and the branch). And this makes it difficult to merge, because it is dotted with unimportant and old changes.
Have similar situations occurred? What would you advise, especially to facilitate the identification of important differences during the merger?
As a temporary resolution (hopefully), I will try and #ifdefdelete the deleted areas, so that SVN will think that the code still exists and has a better merge time. (Unfortunately, this will make the code a little ugly and become uglier when you remove more functions.)
source
share