On Fri, Aug 30, 2013 at 12:49:54PM +0000, Vesa Paatero wrote: > Hi, > > I've noticed that tree conflicts are a nasty thing that occur now and then > but can take half a day to clear out. The tree conflict problem (or field of > problems) runs contrary to SVN's attempt to be the intuitive and quirk-free > alternative to SVN. > In the past, when each directory of the working copy had its own .svn > directory, it was easy to make a drop-in replacement of any mixed-up > directory... but now that there is one central .svn for the working copy, you > may have to discard the whole working copy in order to be able to make > commits and use the system normally again. > I just had a case where no combination of resolve, cleanup, revert or > switch seemed to reset a file (marked with "D" for deletion) to any usable > state. The reason was that an early (grand)parent directory was in an unusual > state ("replaced" or something) but it took long for that to turn out as the > reason why the file, a distant leaf in the directory tree, wouldn't revert > from its deleted state. > > Seasoned users and developers of SVN probably know some set of things to try > to get quickly past a tree conflict problem. So how about making some sort of > a FAQ or a trouble-shooting guide to make such knowledge to a wider audience? > > Regards, > Vesa (Not on the list, please use Cc.)
The SVN Book has a short chapter about tree conflicts which I wrote: http://svnbook.red-bean.com/en/1.7/svn.tour.treeconflicts.html However, it falls short of covering complex issues people actually run into in real life. Because, so far, the biggest issue with documenting this has been the huge number of possible cases people can run into. It's easy to document and explain the simple cases. But it is very hard to anticipate what can happen in real life, and how users might want to resolve such conflicts. It is also very hard to clearly describe complex conflicts without overwhelming novice users. It's a lot of work to come up with useful complex examples and document them thoroughly. So I usually end up giving either very generic advice of the form "first, understand where the conflict came from, then figure out how you want to resolve it, and then come up with svn commands that set your working copy into the desired state", or I walk users through resolution ideas based on detailed conflict reproduction transcripts provided by users themselves (but most people don't provide enough info for that when they ask for help on this list). What I would suggest is that we start a wiki page at http://wiki.apache.org/subversion/ which collects real examples people have run into, and walks through them. Perhaps we can end up with a nice collection of hints that can help inspire people trying to resolve tree conflicts. It could even be moved into the SVN Book eventually, into a new advanced chapter on tree conflicts, for instance. Would you like to volunteer starting off such a list with the case you encountered, and motivate others to do the same? Note that we're also trying to improve the user experience with each new release. For example, Subversion 1.8 can handle tree conflicts involving locally moved files or directories quite well. We hope to improve this further in Subversion 1.9 and beyond.