On Mon, 2009-11-30 at 11:19 +0000, Julian Foad wrote:
> On Mon, 2009-11-30 at 11:02 +0000, Philip Martin wrote:
> > Julian Foad <julianf...@btopenworld.com> writes:
> > 
> > >> This whole --parents stuff is bonkers.  If I do
> > >> 
> > >>  svn mkdir --parents wc/foo/bar/zig/zag
> > >> 
> > >> to create foo, foo/bar, foo/bar/zig and foo/bar/zig/zag the first path
> > >> to get locked is wc/foo/bar. It makes no sense to start in the middle,
> > >> either it should be locking paths from parent to child or from child
> > >> to parent.
> > >
> > > Eww. How did you observe that? Can you see source code that would do
> > > that?
> > 
> > Run it in gdb, set a breakpoint on svn_wc__acquire_write_lock and/or
> > svn_wc__db_wclock_set.  It's the recursion in svn_client_add4 and
> > add_parent_dirs that's the problem.  1.6 would attempt to lock from
> > child to parent, fail because the directories weren't versioned and
> > then lock from parent to child as the directories got added.
> 
> Ah... it looks part of svn_client_add4() is currently "a hack" according
> to WC-NG comments in it... Maybe 
> 
>   /* ### Currently we rely on the fact that this releases all our write
> locks
>      ### recursively. */
> 
> is a problem. I'll back off.
> 
> I committed the status check in r885378, which will make basic_tests 7
> fail for now.

(Uh, committing that wasn't quite in line with "backing off" :-)  I hope
that isn't seen as interfering. Just trying to help.)

- Julian


Reply via email to