On Mon, Aug 20, 2012 at 12:14:06PM +0200, Michael Hüttermann wrote: > Hello, > > nailing down some tree conflicts show that there are no differences at all > comparing merged versions. One example is a file that has the same name, > path and content, but was removed/added meanwhile, and Subversion lost the > tracking that it is exactly the same file than before. Is there a tool or > command to automatically resolve such sort of tree conflicts?
Hi Michael, Subversion performs additions and deletions as explicit operations that are independent of file content. If you don't want to break the line of history of a file you should not be replacing it. If a replacement happens accidentally and this causes tree conflicts during merges, I'd recommend to revert the replacement before committing the merge result. This way the replacement won't propagate further and will eventually stop causing trouble. I cannot give you more detailed advice without more information about the exact tree conflict cases you've been looking at. I'd recommend to take a look at trumerge: http://trumerge.open.collab.net It is an add-on to Subversion that detects renames by scanning the revision log and runs subtree merges on renamed files (as you would usually do manually to merge changes between branches with diverging tree structure). Note also that work is being done to make Subversion resolve some tree conflicts automatically and to provide interactive guidance when resolving tree conflicts in general. This will eventually make it much easier to deal with fallout from accidental replacments as well. Some improvements will be visible in Subversion 1.8 when it is released. Further improvements are planned for later releases. For details, see http://www.elegosoft.com/files/Downloads/Subversion_Day_2012/svn-day-berlin-2012_sperling_moves-and-renames-in-1-8.pdf (This slide set presents my personal view which is not necessarily shared by the entire development community. There is general agreement that we need to improve Subversion in this area but some details of how we're going to do it are still being discussed.)