Hello,

I have to say sorry for the noise. You were right, after retrying to cleanup my 
old copies of the working copy it occurred to me that subversion really can 
clean things up. The problem was that during my initial tests I didn't realize 
that Eclipse still held the lock when the editor was already closed. 

Sorry for that. 

Regards,
Daniel Migowski

-----Ursprüngliche Nachricht-----
Von: Johan Corveleyn [mailto:jcor...@gmail.com] 
Gesendet: Donnerstag, 17. Juli 2014 11:58
An: Daniel Migowski
Cc: Andreas Stieger; users@subversion.apache.org
Betreff: Re: subversion destroys my Working Copy

On Thu, Jul 17, 2014 at 11:23 AM, Daniel Migowski <dmigow...@ikoffice.de> wrote:
> Hello Andreas,
>
>
>
> my editor (current Eclipse 4.4) locks my build.xml files, even after I 
> closed them in the Editor. This is a bug, alright, but nonetheless I 
> feel that subversion should never leave the Working Copy in a state 
> where it cannot be cleaned up anymore.
>
>
>
> I propose the following behavior as correct: Since the commit itself 
> succeeded, the local file should be marked as being in the revision 
> committed, but with local changes (since the tags have not been updated).
> Then I could simply fix my problems by reverting to HEAD after 
> unlocking my file and everything is fine.
>
>
>
> Do you agree? This behaviors seems much better.
>

Just as a FYI, some prior discussion around a similar issue (with 'svn revert'):

http://svn.haxx.se/users/archive-2014-02/0157.shtml ("svn revert"
corrupts working copy)

From that discussion I remembered two things:

1) Your working copy isn't really corrupt. There is an obstruction (locked file 
in your case) that prevents svn from completing its work.
Remove the obstruction and all will be fine (after removing the obstruction 
running 'svn cleanup' should bring everything back into a consistent state).

2) With the current design, there is not much that can be done about this. 
During its operation (update, revert, ...) svn makes changes to both its 
database (.svn/wc.db) and the filesystem. Both parts need to be consistent with 
each other. Svn will first make changes to its database, and then schedule the 
changes it needs to make to the filesystem in its "work queue" (things that 
still need to be completed on the filesystem to bring the working copy in a 
consistent state). If some part of the work queue cannot be completed (because 
of an
obstruction) svn will bail out. The work queue still needs to be completed 
though, before anything else can be done. Running 'svn cleanup' first tries to 
complete the work queue, and will also bail out if it can't. The work queue 
*must* be completed to return the working copy to a consistent state.


--
Johan

Reply via email to