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.

Reply via email to