We won’t ADD empty actual records, but we only remove them in a few places and 
upgrade is not one of these places. 


There are only very minor changes between the 1.7 and 1.8 formats and we don't 
perform a full state check on upgrade (we don’t even have a way to represent a 
full node state with all layers in ram)… And an actual node record with just 
NULL values is just inefficient, not really incorrect.




Bert


Sent from Windows Mail





From: Branko Čibej
Sent: ‎Sunday‎, ‎April‎ ‎6‎, ‎2014 ‎10‎:‎33‎ ‎PM
To: dev@subversion.apache.org




I have the immense privilege to be able to debug a wc.db that was upgraded to 
the 1.8 format using our code from a 1.7 format created by SVNKit. It's mostly 
plain sailing, but on this happy occasion I'm seeing a rather strange record in 
the database, both before and after the upgrade:
$ sqlite3 wc.db
SQLite version 3.8.4.1 2014-03-11 15:27:36
Enter ".help" for usage hints.
sqlite> .nullvalue "(nul)"
sqlite> SELECT * FFROM NODES WHERE local_relpath = "dir/file";
1|dir/file|0|DisplayServer|1|trunk/dir/file|5796|normal|(nul)|(nul)|file|(svn:keywords
 23 Author Date Id Revision svn:eol-style 
CRLF)|(nul)|$sha1$d4f0f7a37ff21bb3d1ce58ed5906b93351d7c87c|(nul)|4832|1338401677262718|theauthor|1032|1338550831496845|(nul)|(nul)|(nul)
sqlite> SELECT * FROM ACTUAL_NODE;
1|dir/file|dir|(nul)|(nul)|(nul)|(nul)|(nul)|(nul)|(nul)|(nul)|(nul)|(nul)|(nul)|(nul)

The thing I don't understand is: how can we have an ACTUAL_NODE record with all 
the flags nulled out, and an op_depth=0 record in NODES at the same time?

Note that the record first appeared in the wc.db created by SVNKit, but our WC 
upgrade left it untouched. Unfortunately I have only the wc.db files, not the 
whole working copy.

-- Brane



-- 
Branko Čibej | Director of Subversion 
WANdisco // Non-Stop Data 
e. br...@wandisco.com

Reply via email to