I tried to roll back some changes to a file by doing a reverse merge, but I had the file in question open and locked, so svn wasn't able to complete the merge. However, this has left my working copy broken and unrecoverable :( (I know I can do a clean checkout, but that's creating a new WC... the old one remains unrecoverable by normal means).

Pretty much any operation on the WC, such as "svn log", fail with: svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted

But "svn cleanup" doesn't work because: svn: E720002: Can't open file 'C:\Users\Dave\AppData\Local\Temp\svn-C09EC58D': The system cannot find the file specified.

It's true that the file it's looking for isn't there, but why does it expect it to be there? It's in the Temp directory, and svn shouldn't expected things in there to stay around between different invocations of svn. That said, I didn't delete it myself--I assume svn must've deleted it.

The .svn/wc.db's WORK_QUEUE table contains:

3399|(file-install Data/DemoCA.zip 1 0 1 0 C:/Users/Dave/AppData/Local/Temp/svn-C09EC58D)
3400|(sync-file-flags Data/DemoCA.zip)

Data/DemoCA.zip is the file I was trying to reverse merge. I deleted those two rows and was able to do a "svn cleanup", but manually messing with the wc.db doesn't sound like a good idea.

So, why does "svn cleanup" fail if a temp file can't be found, and can something be done to remove that requirement? As I mentioned, I don't think svn should depend on temp files being persistent.

This is with svn 1.7.5 on Windows 7.

Reply via email to