Johan Corveleyn wrote on Sat, Sep 11, 2010 at 00:02:16 +0200: > On Fri, Sep 10, 2010 at 11:45 PM, <joha...@tigris.org> wrote: > > http://subversion.tigris.org/issues/show_bug.cgi?id=3474 > > > > ------- Additional comments from joha...@tigris.org Fri Sep 10 14:45:17 > > -0700 2010 ------- > > This issue seems to be fixed on trunk. The described scenario now goes as > > follows: > > > > (assuming we're in a working copy with a versioned file a.txt) > > [[[ > > $ svn mkdir subdir > > A subdir # same as in 1.6 > > > > $ svn mv a.txt subdir > > A subdir\a.txt > > D a.txt # same as in 1.6 > > > > $ svn st > > A subdir > > A + subdir\a.txt > > D a.txt # same as in 1.6 > > > > $ svn mv subdir subdir2 > > A subdir2 > > D subdir\a.txt > > D subdir # different! will ask on dev list about this. > > Is the above output an expected change of behavior? Previously (in > 1.6) the above action generated the following output (as can be seen > in the original description of issue 3474): > > [[[ > $ svn mv subdir/ subdir2 > A subdir2 > A subdir2\a.txt > D subdir > ]]] > > It's no problem for me (the result is perfectly fine), just wondering ... > > In fact, I never quite understood the output in 1.6 (why are all > children of a moved directory shown as deleted, and not as added in > the new dir?). But I don't understand it now either (I can reverse the > question).
The other way around, right? What you describe here as 1.6's behaviour is in fact 1.7's behaviour (and vice-versa)... > Is there any rational explanation, any underlying > reasoning, principles, ... ? > When a directory is removed, then everything under it (all children and descendants) implicitly ceases to exist too. (Consider the grandfather paradox.) So I can see the 'D subdir/a.txt' notification as redundant. On the other hand, after the move two new nodes exist: 'subdir2/' and 'subdir2/a.txt'. So it would be appropriate to generate notifications that allow the client to infer that both of them exist. There are several options to do that: perhaps 'A + subdir2/' or (more accurately) 'A subdir2/ has_children=True', or 'A subdir2/; A subdir2/a.txt'. > Cheers, > -- > Johan