> -----Original Message----- > From: Johan Corveleyn [mailto:jcor...@gmail.com] > Sent: woensdag 28 maart 2012 15:47 > To: Philip Martin > Cc: users@subversion.apache.org > Subject: Re: svn 1.7: how to recover from a lost pristine file > > On Wed, Mar 28, 2012 at 3:08 PM, Johan Corveleyn <jcor...@gmail.com> > wrote: > > 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/rootdi r/t > he/file/with/missing/pristine.java|176219|normal|||file|(svn:eol-style > > > native)||$sha1$6d6e0892990e945b03a15b8e518dbef26848dc75||175563|1332 > 375850493000|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. > > Hm, no luck: > > [[[ > $ sqlite3 .svn/wc.db "delete from work_queue" > > $ sqlite3 .svn/wc.db "select * from work_queue" > <nothing> > > C:\Work\WC-root>svn-1.7 up -r0 the/file/with/missing/pristine.java > svn: E155004: Working copy 'C:\Work\WC-root\the\file\with\missing' locked. > svn: E155004: 'C:\Work\WC-root' is already locked. > svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) > > C:\Work\WC-root>svn-1.7 cleanup > > <yay! this time 'svn cleanup' completes, let's try again> > > C:\Work\WC-root>svn-1.7 up -r0 the/file/with/missing/pristine.java > Updating 'the\file\with\missing\pristine.java': > svn: E720002: Can't open file > 'C:\Work\WC- > root\.svn\pristine\6d\6d6e0892990e945b03a15b8e518dbef26848dc75.svn- > base': > The system cannot find the file specified. > > <at this point, a work-queue item has been created again> > > $ sqlite3 .svn/wc.db "select * from work_queue" > 2|(file-install the/file/with/missing/pristine.java 1 0 1 1) > > ]]] > > Any other suggestions?
Maybe 'svn up --set-depth exclude X' instead of -r0. And then a 'svn up X' Bert