You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Jan Evert van Grootheest <j....@euronext.nl> on 2003/09/04 14:04:23 UTC

kill svn and working copy is corrupt

Hello,

I've just had this nasty experience on windows...
I had to kill an svn update (don't recall the reason) and it corrupted 
the working copy to such a state that I did not know how to get out of it.
This is svn 0.27 on winNT.

Here's part of the session *right after* another kill (to reproduce...):
----------------------------------------------
D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn st
! L    .
! L    docs
! L    docs\tutorials
   L    docs\tutorials\001
   L    docs\tutorials\002
   L    docs\tutorials\003
   L    docs\tutorials\004
! L    docs\tutorials\005
?      docs\tutorials\005\client_handler.cpp
   L    docs\tutorials\020
   L    docs\tutorials\021
   L    docs\tutorials\022
   L    docs\tutorials\022\client
   L    m4

D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn up
svn: Attempted to lock an already-locked dir
svn: working copy locked: .
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn cleanup
svn: Problem running log
svn: in directory 'docs/tutorials/005'
svn: The system cannot find the file specified.
svn: svn_io_copy_file: error copying 
'docs/tutorials/005/.svn/tmp/text-base/clie
nt_handler.cpp.svn-base' to 'docs/tutorials/005/client_handler.cpp.tmp'

D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn cleanup
svn: Problem running log
svn: in directory 'docs/tutorials/005'
svn: The system cannot find the file specified.
svn: svn_io_copy_file: error copying 
'docs/tutorials/005/.svn/tmp/text-base/clie
nt_handler.cpp.svn-base' to 'docs/tutorials/005/client_handler.cpp.2.tmp'
----------------------------------------------
As you can see, much is locked and update rightly complains about it. 
Unfortunately, cleanup also complains!


How would one normally recover from this?


I deleted the tutorials directory and removed it from docs/.svn/entries. 
After that cleanup completed succesfully and another update worked.

If any more information is needed, just let me know and I'll see what I 
can do.

-- Jan Evert


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: kill svn and working copy is corrupt

Posted by Jan Evert van Grootheest <j....@euronext.nl>.
Philip,

Philip Martin wrote:

> Ben Collins-Sussman <su...@collab.net> writes:
> 
> 
>>Jan Evert van Grootheest <j....@euronext.nl> writes:
>>
>>
>>>D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn up
>>>svn: Attempted to lock an already-locked dir
>>>svn: working copy locked: .
>>>svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
>>>
>>>D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn cleanup
>>>svn: Problem running log
>>>svn: in directory 'docs/tutorials/005'
>>>svn: The system cannot find the file specified.
>>>svn: svn_io_copy_file: error copying
>>>'docs/tutorials/005/.svn/tmp/text-base/clie
>>>nt_handler.cpp.svn-base' to 'docs/tutorials/005/client_handler.cpp.tmp'
>>
>>The wc journals are supposed to be idempotent;  in other words, when
>>'svn cleanup' re-runs the journal, it should all just work, even if it
>>means re-running some journaled commands. 
>>
>>But we've seen an elusive win32 bug related to file i/o.  The journal
>>obviously has a command to copy a specific .svn-base file to a .tmp
>>file, but the .svn-base file isn't present.  This is probably that
>>mysterious win32 file i/o bug.
>>
>>
>>>How would one normally recover from this?
>>
>>Exactly what you did below.
> 
> 
> Not quite, I would not recommend editing the entries file.  Simply
> delete the tutorials directory and leave the entries file alone.  The
> tutorials directory will be identified as missing and a subsequent
> update will restore it.
> 
> 
>>>I deleted the tutorials directory and removed it from
>>>docs/.svn/entries. After that cleanup completed succesfully and
>>>another update worked.
> 
> 
> Removing the directory from docs/.svn/entries file will only work if
> the entries file marks docs as incomplete.  If docs is not marked
> incomplete then the client will not know about the missing directory
> and will not restore it.

Unfortunately, the docs directory _is_ marked incomplete. I'd guess that 
is because it is actually being updated (the tutorials is being updated 
because it previously did not exist in the wc).

-- Jan Evert



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: kill svn and working copy is corrupt

Posted by Philip Martin <ph...@codematters.co.uk>.
Ben Collins-Sussman <su...@collab.net> writes:

> Jan Evert van Grootheest <j....@euronext.nl> writes:
>
>> D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn up
>> svn: Attempted to lock an already-locked dir
>> svn: working copy locked: .
>> svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
>> 
>> D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn cleanup
>> svn: Problem running log
>> svn: in directory 'docs/tutorials/005'
>> svn: The system cannot find the file specified.
>> svn: svn_io_copy_file: error copying
>> 'docs/tutorials/005/.svn/tmp/text-base/clie
>> nt_handler.cpp.svn-base' to 'docs/tutorials/005/client_handler.cpp.tmp'
>
> The wc journals are supposed to be idempotent;  in other words, when
> 'svn cleanup' re-runs the journal, it should all just work, even if it
> means re-running some journaled commands. 
>
> But we've seen an elusive win32 bug related to file i/o.  The journal
> obviously has a command to copy a specific .svn-base file to a .tmp
> file, but the .svn-base file isn't present.  This is probably that
> mysterious win32 file i/o bug.
>
>> How would one normally recover from this?
>
> Exactly what you did below.

Not quite, I would not recommend editing the entries file.  Simply
delete the tutorials directory and leave the entries file alone.  The
tutorials directory will be identified as missing and a subsequent
update will restore it.

>> I deleted the tutorials directory and removed it from
>> docs/.svn/entries. After that cleanup completed succesfully and
>> another update worked.

Removing the directory from docs/.svn/entries file will only work if
the entries file marks docs as incomplete.  If docs is not marked
incomplete then the client will not know about the missing directory
and will not restore it.

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: kill svn and working copy is corrupt

Posted by Ben Collins-Sussman <su...@collab.net>.
Jan Evert van Grootheest <j....@euronext.nl> writes:

> D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn up
> svn: Attempted to lock an already-locked dir
> svn: working copy locked: .
> svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
> 
> D:\svn\MAL\MAL\Dev\development\3rdparty\ACE\ACE_wrappers>svn cleanup
> svn: Problem running log
> svn: in directory 'docs/tutorials/005'
> svn: The system cannot find the file specified.
> svn: svn_io_copy_file: error copying
> 'docs/tutorials/005/.svn/tmp/text-base/clie
> nt_handler.cpp.svn-base' to 'docs/tutorials/005/client_handler.cpp.tmp'

The wc journals are supposed to be idempotent;  in other words, when
'svn cleanup' re-runs the journal, it should all just work, even if it
means re-running some journaled commands. 

But we've seen an elusive win32 bug related to file i/o.  The journal
obviously has a command to copy a specific .svn-base file to a .tmp
file, but the .svn-base file isn't present.  This is probably that
mysterious win32 file i/o bug.

> How would one normally recover from this?

Exactly what you did below.

> I deleted the tutorials directory and removed it from
> docs/.svn/entries. After that cleanup completed succesfully and
> another update worked.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org