Ethan Bradford <ethan.bradf...@swype.com> writes:

> I don't know what the server version is.  cURL won't accept  an svn: URL.

Ah! svnserve.  Then "telnet server.com 3690" will get the handshake
which will tell us something.

> Using the repo browser I can see the whole history.  There are just two
> versions of this file, none more recent than  3323.  I think  3936 is a red
> herring -- that was perhaps the tip revision for the whole repository when
> the update was attempted.  (The current tip is 4013.)

Yes.  3936 is the revision to which you were updating.

> I hate to confess to such absent mindedness, but I may have "svn delete"ed
> this file.  I see that I don't have a local copy of it, which supports that
> theory.  If I did that, I didn't commit the change -- the repository still
> has the file.

I'll have to think about that.  The nodes row was presence=normal.  I
wonder if the update was creating a tree conflict?  Unlikely if there
are no more recent changes than 3323.

sqlite3 .svn/wc.db "select tree_conflict_data from actual_node"

>> Thanks for your help so far!
>>
>
> I'm happy to help, and I appreciate your time.  Just to be clear, I
> wouldn't dream of taking so much of your time just to solve my local
> problem.  You're digging into this to figure out the bug with change to the
> 1.7.1 version (or maybe "svn update" within the 1.7.1 version), right?

Yes.

> Since I will likely need to do another checkout anyhow, I'm happy to try
> experiments which might be destructive to my local copy.

We may be able to recover it.  Please make a copy of the wc.db file
first.  The following instructions assume there is no tree conflict.

First we look at the workqueue, to confirm there is just one row.

sqlite3 .svn/wc.db "select * from work_queue"

Next look at the parent dir:

sqlite3 .svn/wc.db "select op_depth, local_relpath, presence from nodes where 
local_relpath='DBBuild/Wordlists/Belarusian'"

to confirm there is just one row with op-depth=0 and presence=normal or
presence=incomplete.  If the presence is something else then stop, the
instuctions below do not apply.

If presence is normal then set the parent dir to presence=incomplete:

sqlite3 .svn/wc.db "update nodes set presence='incomplete' where 
local_relpath='DBBuild/Wordlists/Belarusian'"

Now remove the corrupt file row:

sqlite3 .svn/wc.db "delete from nodes where 
local_relpath='DBBuild/Wordlists/Belarusian/BelarusianForceFreq.txt[MOVED]'"
sqlite3 .svn/wc.db "delete from actual_node where 
local_relpath='DBBuild/Wordlists/Belarusian/BelarusianForceFreq.txt[MOVED]'"

Remove the now unversioned file (except you say it doesn't exist so skip
this step).

rm 'DBBuild/Wordlists/Belarusian/BelarusianForceFreq.txt[MOVED]'

Remove the workqueue:

sqlite3 .svn/wc.db "delete from work_queue"

Run cleanup to remove locks:

svn cleanup

The working copy should be fixed; the next update will pull the missing
file.

-- 
Philip

Reply via email to