Suppose I have a checkout containing a versioned directory A that
contains a child A/f.  If I delete A the status shows:

$ svn st 
D   A
D   A/f

If I now copy some other directory to replace A and the copied directory
also has a child f, then status shows:

$ svn st
R + A

That looks correct to me, the replacement hides the deleted child.  If
the copied directory also contains a child g and I delete it within the
copy, then status shows

$ svn st
R + A
D   A/g

which also looks correct.

However if the copied directory does not contain a child f then the
status of the deleted A/f shows through after the replacement:

$ svn st
R + A
D   A/f

and if I delete the copied child g then status shows:

$ svn st
R + A
D   A/f
D   A/g

I think both of those are wrong, the deleted A/f should be hidden by the
replacement.  The delete of A/f is fundamentally different to the delete
of A/g.  On commit the client will delete A, copy the replacement and
delete A/g; it won't delete A/f.

Anybody want to agree or disagree?

-- 
Philip

Reply via email to