1) Get an sqlite executable (for Windows: download a pre-compiled binaryfrom http://www.sqlite.com/download.html). Put it somewhere in your PATH.
1 2 3
2) Open a command prompt and go to the root of your working copy. Execute: sqlite3 .svn\wc.db "select * from nodes where checksum like'%d9b41b57756396b9cb236801fc02e0da0a83dffe%'" This should return exactly 1 row from the svn working copy database.
You can see in that row the local path that’s related to that pristine file.
1 2 3 4
3) Now execute: sqlite3 .svn\wc.db "update nodes set presence='not-present'where checksum like'%d9b41b57756396b9cb236801fc02e0da0a83dffe%'" Now you've changed the presence value of that particular row to "not-present", giving svn a chance to recover from the actually missing pristine file.
4) svn cleanup again. There might be more missing pristines. Repeat steps 2 and 3 for them. missing pristine file.
5) Finally: svn update –force
This makes svn actually restore the pristines. The –force is there because svn will also try to install the working versions of the “not-present” files. But those files are still there. Without –force you’ll get tree conflicts on those files because of the “unversioned obstructions” that svn thinks they are (because of “not-present” svn thinks they shouldn’t be there).