DELTA versus PLAIN in revision logs

578 views Asked by At

I've searched the web and not come up with a good answer to this, but for some reason (after upgrading to TortoiseSVN 1.9.0?) my Subversion revision log file format has changed, which is confusing the Jenkins SVN plugin, and I am confused as to why.

In .../Repository/db/revs/0, looking at the tail of the revision files I get the following for tail -n40 116, an older revision:

PLAIN
K 8
branches

[elided]

ub-3.0.t115-38 modify-file true false /trunk/foo/bar.c

17579 17721

For tail -n21 117, the HEAD revision:

DELTA 116 17463 103
SVNgfK▒a19

[elided]

ua-3.0.t116-39 modify-file true false /trunk/baz/wibble.h

4646 4785

Is there some tool to convert these DELTA revision logs to PLAIN format, or some setting to prevent DELTA revisions being created?

UPDATE: This problem this is appears to be causing is described in this bug report.

2

There are 2 answers

0
Ken Y-N On BEST ANSWER

Here is the full answer that has worked for me.

First, following this guide, and assuming /cygdrive/c/SVNRepository as the repo location, do the following to take a snapshot of the current repository:

 cd /cygdrive/c
 svnadmin dump SVNRepository/ >copy.dump
 rm -rf SVNRepository
 svnadmin create --compatible-version 1.8 SVNRepository

Note that the --compatible-version 1.8 is very important as Jenkins cannot yet understand the new 1.9 format.

Now using an editor of your choice, load up SVNRepository/db/fsfs.conf, eg:

vi SVNRepository/db/fsfs.conf

Find the following two lines (lines 61 and 69 for me):

# enable-dir-deltification = true
# enable-props-deltification = true

And change them to:

enable-dir-deltification = false
enable-props-deltification = false

Now import the snapshot into the fresh database:

svnadmin load SVNRepository/ < copy.dump

Now, Jenkins should be back working again!

0
bahrep On

You should never touch repository revision files manually. They have zero meaning for anyone except Subversion developers. What issue are you trying to troubleshoot this way? It looks like you've taken a wrong direction.

PLAIN and DELTA were always in Subversion FSFS revision files. Moreover, Jenkins (its SVN plug-in to be precise) should have no issues with repository backend format because it uses client layer to access repositories.

If you are interested about the meaining of these DELTA and PLAIN, read FSFS repository backend design document at https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure.