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

Reply via email to