On Wed, Mar 28, 2012 at 2:12 PM, Philip Martin <philip.mar...@wandisco.com> wrote: > Johan Corveleyn <jcor...@gmail.com> writes: > >> For some reason, I lost a pristine file [*] in a 1.7 working copy. I'm >> trying to recover from this without having to throw away my entire >> working copy. So far I'm unsuccessful. Any help is appreciated. >> >> svn-1.7 is SlikSVN 1.7.4 (On Windows 7, 64bit): >> [[[ >> C:\Work\WC-root>svn-1.7 update -r0 the\file\with\missing\pristine.java >> svn: E155037: Previous operation has not finished; run 'cleanup' if it >> was interrupted >> >> C:\Work\WC-root>svn-1.7 cleanup the\file\with\missing >> svn: E155004: Working copy 'C:\Work\WC-root\the\file\with\missing' locked. >> svn: E155004: 'C:\Work\WC-root' is already locked. >> svn: E155037: Previous operation has not finished; run 'cleanup' if it >> was interrupted >> svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) >> >> C:\Work\WC-root>svn-1.7 cleanup >> svn: E720002: Can't open file >> 'C:\Work\WC-root\.svn\pristine\6d\6d6e0892990e945b03a15b8e518dbef26848dc75.svn-base': >> The system cannot find the file specified. >> ]]] >> >> (the fact that the working copy is locked to begin with, was because a >> normal 'svn update' failed because of the missing pristine, with "svn: >> E155004: There are unfinished work items in 'C:\Work\WC-root'; run >> 'svn cleanup' first.", which is why I first found out about the >> problem) >> >> Anything I can do to investigate further? > > Use the sqlite3 utility > > sqlite3 .svn/wc.db "select * from work_queue"
Thanks for your help, Philip. $ sqlite3 .svn/wc.db "select * from work_queue" 1|(file-install trunk/rootdir/the/file/with/missing/pristine.java 1 0 1 1) > These may show something: > > sqlite3 wc/.svn/wc.db "select * from nodes where local_relpath = > '/the/file/with/missing/pristine.java'" > > sqlite3 wc/.svn/wc.db "select * from nodes where checksum like > '%6d6e0892990e945b03a15b8e518dbef26848dc75'" Both of the above show the same: 1|the/file/with/missing/pristine.java|0|the/file/with/missing|1|trunk/rootdir/the/file/with/missing/pristine.java|176219|normal|||file|(svn:eol-style native)||$sha1$6d6e0892990e945b03a15b8e518dbef26848dc75||175563|1332375850493000|username|56722|1332709446087164|| > sqlite3 wc/.svn/wc.db "select * from pristine where checksum like > '%6d6e0892990e945b03a15b8e518dbef26848dc75'" That shows nothing. > Depending on what the work_queue shows you may be able to further > corrupt your working copy and then recover by doing this: > > sqlite .svn/wc.db "delete from work_queue" > svn up -r0 file > > IMPORTANT! Deleting the work_queue does generally make the working copy > invalid, it is then up to you to ensure it returns to a valid state. Heh :-). I'll give it a try (I'll wait a while, in case you have something more to add given my feedback ...). Is this a situation from which svn could ultimately become self-healing? -- Johan