cmpilato@collab.net writes:
> Philip Martin <philip@codematters.co.uk> writes:
>
> > > $ svn up
> > > subversion/libsvn_subr/io.c:1567: (apr_err=2, src_err=0)
> > > svn: No such file or directory
> > > svn: svn_io_file_open: can't open `D/.svn/lock'
> > >
> > > #### again, the wc should report D as 'missing', and the full
> > > directory should be re-added in the update-report response.
> > > We're erroring out early.
> > >
> > > Shall I file this as one or two issues? We're definitely regressing
> > > here.
> >
> > Look at issue 714. It's asking for revert to do it, but I don't see
> > why update should not do it.
> >
> > The original bug, where the directory is missing from the entries file
> > is harder to fix. In that case the client doesn't know that the
> > directory is missing, so it won't report it. I suppose it might be
> > possible to change the server to assume that anything not reported is
> > missing?
> >
> > In both cases the working copy can probably be fixed by using checkout
> > onto the original directory that contains the missing directory. That
> > however has to retrieve everything, not just the missing bits. It may
> > not handle switched working copies either.
>
> No, Philip, this is definitely a regression. The working copy should
> be noticing that there is a 'D' in version control, but it is missing
> from disk. When building the server transaction to mimic the working
> copy, it then removes 'D' from that transaction, which in turn causes
> the server to re-add D (and children) to the working copy via the
> update.
I didn't notice you were seeing a locking problem, this does indeed
need a new issue. The client is not getting as far as reporting
anything to the server because it is failing to lock the missing
directory. Looks like svn_wc_adm_open needs to handle missing
directories, probably by skipping them. If the directory coming from
the server then gets treated as an add things may just work, if it
gets treated as an update then the update editor may need to lock the
new directory after it gets created.
However I don't think this will fix the original bug, where the
working copy entries file was corrupt and didn't mention the
directory. In that case the client won't report it as missing because
it doesn't know about it. So the server won't send it. In that case
a checkout is still required.
--
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Aug 21 18:47:00 2002