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.

- Julian


Reply via email to