Philip Martin <philip@codematters.co.uk> writes:
> I tried a few things in gdb, the current code does appear to be
> reasonably robust.  I don't remember the May problem in detail, but I
> think it applied to the code before the restartable checkout changes.
> If that's the case then I think it is reasonable to assume that those
> changes have eliminated the problem.
Yes, that was my conclusion too, after re-reading lots of wc code.
The 'incomplete' flag has had a side-effect of making the wc more
robust overall -- allowing it to 'heal' itself much more easily.
> >   But I *do* see a a problem in the update-editor's close_dir(), where
> >   we're immediately marking a directory 'complete', yet taking no
> >   steps to remove *any* dead entries at all.  I think that's the real
> >   problem that needs addressing.
> 
> Yes, that does go wrong.  An interrupted update can end up with extra
> entries, ones for which there are no items in the working copy and
> which don't correspond to repository items.  Status shows such extra
> items as missing, and update will remove them.  That behavior is not
> too bad, it may even be acceptable.
Well, I just fixed it in r7197.  :-)
> It looks reasonable.  There is still this corner case
> 
>   $ svnadmin create repo
>   $ svn co file://`pwd`/repo wc
>   $ svn mkdir wc/foo
>   $ rm -rf wc/foo  # not svn rm
>   $ svn up wc
>   D   wc/foo
> 
> Update shouldn't really delete the foo entry.  I don't think this is a
> particularly serious problem, it barely qualifies as a bug.
Ah!  I think one of Brian Denny's patches (posted in the issue)
actually addresses this problem.  It's easy to fix... I'll do it now.
Once that's done, I'll close #1075 for good.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Sep 26 15:45:51 2003