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" 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'" sqlite3 wc/.svn/wc.db "select * from pristine where checksum like '%6d6e0892990e945b03a15b8e518dbef26848dc75'" 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. -- Philip