RE: How about a troubleshooting guide for tree conflicts?

2013-08-30 Thread Vesa Paatero
Thank you for your reply, Stefan.

My tree conflicts have usually been of the type that the right data is
in the right place but it just hasn't been put there the way Subversion
expects it... for example, I create a branch and check it out in one
working copy, then copy it via the file system to the corresponding
place in another working copy -- or something similar. I guess this is
exactly what is covered by what you wrote about 1.8: "Subversion
1.8 can handle tree conflicts involving locally moved files or
directories quite well."   Great!

Umm, oftentimes the problem with documentation is: How to get it in
front of users' eyes at the right time? One philosophy would be to let
the SVN client guide users so that when it announces a tree conflict
to the user it also prints the URL of some documentation about tree
conflicts. If that path is to be taken, then I guess the output should
be formatted so that graphical SVN clients can tell which part of the
output is the usual output and what is to be considered extra hints.

Thanks but I don't think the volunteer position is the right thing for
me -- at least not now.
 
Vesa


From: Stefan Sperling [s...@elego.de]
Sent: Friday, August 30, 2013 4:08 PM
To: Vesa Paatero
Cc: users@subversion.apache.org
Subject: Re: How about a troubleshooting guide for tree conflicts?

On Fri, Aug 30, 2013 at 12:49:54PM +, 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.



RE: How about a troubleshooting guide for tree conflicts?

2013-08-30 Thread Andrew Reedick


> -Original Message-
> From: Stefan Sperling [mailto:s...@elego.de] 
> Sent: Friday, August 30, 2013 9:09 AM
> To: Vesa Paatero
> Cc: users@subversion.apache.org
> Subject: Re: How about a troubleshooting guide for tree conflicts?

> 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.

How about we start with a list of the possible error messages?  =)

IME, a merge conflict means you, the user, have to manually recreate the tree 
via svn copy, svn mv, etc. commands.  Which is a *huge* perception/paradigm 
change from how file merges are handled.  Meaning, tree conflicts have zero 
automation/help from svn.  Once you accept that, and learn how to read the 
messages, tree conflicts aren't that mysterious anymore.




Re: How about a troubleshooting guide for tree conflicts?

2013-08-30 Thread Stefan Sperling
On Fri, Aug 30, 2013 at 12:49:54PM +, 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.