On Tue, Oct 18, 2011 at 12:51:18AM +0200, Bert Huijben wrote:
> 
> 
> > -----Original Message-----
> > From: s...@apache.org [mailto:s...@apache.org]
> > Sent: dinsdag 18 oktober 2011 0:47
> > To: comm...@subversion.apache.org
> > Subject: svn commit: r1185421 -
> > /subversion/trunk/subversion/libsvn_wc/update_editor.c
> > 
> > Author: stsp
> > Date: Mon Oct 17 22:46:29 2011
> > New Revision: 1185421
> > 
> > URL: http://svn.apache.org/viewvc?rev=1185421&view=rev
> > Log:
> > Follow-up to r1185392:
> > * subversion/libsvn_wc/update_editor.c
> >   (add_directory): Do not create directories on disk inside subtrees which
> >     have been moved away.
> > 
> > Modified:
> >     subversion/trunk/subversion/libsvn_wc/update_editor.c
> > 
> > Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
> > URL:
> > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/upd
> > ate_editor.c?rev=1185421&r1=1185420&r2=1185421&view=diff
> > ==========================================================
> > ====================
> > --- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
> > +++ subversion/trunk/subversion/libsvn_wc/update_editor.c Mon Oct 17
> > 22:46:29 2011
> > @@ -2310,8 +2310,8 @@ add_directory(const char *path,
> >                                                         pool));
> > 
> >    /* Make sure there is a real directory at LOCAL_ABSPATH, unless we are
> > just
> > -     updating the DB */
> > -  if (!db->shadowed)
> > +     updating the DB or the parent was moved away. */
> > +  if (!db->shadowed && !pb->moved_to_abspath)
> >      SVN_ERR(svn_wc__ensure_directory(db->local_abspath, pool));
> 
> Why is this extra check necessary?
> (Is there some kind of race condition on deleting a new child directory?)
> 
> When there are layers above BASE for the directory, db->shadowed is TRUE. And 
> a layer above base is required for a node to be marked as moved. If there 
> isn't the node exists in its original location.

Apparently your assumption is false. db->shadowed is not TRUE in the
case I tested. Maybe it's a bug? You can revert this patch locally and
run update_test 64 to see the problem yourself.

Reply via email to