On 06.04.2014 16:23, Bert Huijben wrote:
> 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.
Thanks! That's all I really needed to know.
> *From:* Branko Čibej <mailto:brane_at_wandisco.com>
> *Sent:* Sunday, April 6, 2014 10:33 PM
> *To:* dev_at_subversion.apache.org <mailto:dev_at_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 184.108.40.206 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;
> 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. brane_at_wandisco.com
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
Received on 2014-04-07 04:53:52 CEST