> -----Original Message-----
> From: Bert Huijben [mailto:b...@qqmail.nl]
> Sent: dinsdag 9 juli 2013 12:26
> To: dev@subversion.apache.org; s...@apache.org
> Subject: RE: svn commit: r1501163 - in /subversion/trunk/subversion:
> include/private/svn_wc_private.h libsvn_client/checkout.c
> libsvn_wc/adm_files.c
> 
> 
> 
> > -----Original Message-----
> > From: s...@apache.org [mailto:s...@apache.org]
> > Sent: dinsdag 9 juli 2013 11:35
> > To: comm...@subversion.apache.org
> > Subject: svn commit: r1501163 - in /subversion/trunk/subversion:
> > include/private/svn_wc_private.h libsvn_client/checkout.c
> > libsvn_wc/adm_files.c
> >
> > Author: stsp
> > Date: Tue Jul  9 09:35:12 2013
> > New Revision: 1501163
> >
> > URL: http://svn.apache.org/r1501163
> > Log:
> > Allow 'svn checkout' to work within a working copy that is locked.
> > Fixes a regression from 1.7.
> >
> > Reported by: Frank Loeffler <knarf_at_cct lsu edu>
> > See http://svn.haxx.se/users/archive-2013-07/0066.shtml
> >
> > * subversion/include/private/svn_wc_private.h
> >   (svn_wc__init_adm): Declare.
> >
> > * subversion/libsvn_client/checkout.c
> >   (initialize_area): Use svn_wc__init_adm() instead of
> > svn_wc_ensure_adm4().
> >    The latter scans upwards for an existing admin area to check for existing
> >    working copies, which we don't need to do when creating a new WC.
> >
> > * subversion/libsvn_wc/adm_files.c
> >   (svn_wc__init_adm): New function, a thin wrapper around init_adm().
> >    This creates a new admin area at a specified local abspath, without
> >    first scanning upwards for an existing admin area. We could also have
> >    created svn_wc_ensure_adm5() with a new 'is_checkout' argument, but
> >    we're trying to reduce the public set of libsvn_wc API functions.
> 
> I haven't tested this, but this currently appears to remove the safety net
> around:
> $ rm trunk
> $ svn co URL trunk
> (which would produce an error and now two working copies)
> 
> Or:
> $ svn rm trunk
> $ svn co URL trunk
> (which will now produce two working copies, with the first partially
> obstructed)
> 
> Or even:
> $ svn up --set-depth excluded trunk
> $ svn co URL trunk
> 
> In all these cases 1.6 would have behaved one way, and with single-db we
> behave in a different way as we don't just attach subdirectories in the parent
> wc.db.
> 
> This patch might fix a few use cases, but I don't think it solves a real
> problem... And it might create a whole heap of new proplems

And detecting any of these in a user friendly way would require reading the 
parent working copy...

... but the only reason you added this patch (as far as I can tell) was because 
reading the parent working copy wasn't possible?


I think the recommended approach is making sure the parent working copy is 
readable, instead of trying to do things 100% without the parent working copy. 

Doing things without the parent working copy just gives you all kinds of 
obstruction scenarios where a simple local_abspath doesn't work as that will 
just describe a path that is now part of two working copies.

I don't think want to go back to the access batons/wc.db per directory where we 
could describe these paths that are part of two working copy scenarios.

        Bert

Reply via email to