On Tue, Dec 14, 2021 at 10:56 AM Luke Mauldin <lukemaul...@icloud.com> wrote:
>
> When compression is enabled at the SVN level, what exactly does it compress? 
> Does it just compress the original file content and the deltas?

I am really just a layman so cannot explain it accurately ... but here goes.

SVN does not really store the original file content. It stores a DELTA
which does a bit of a compression itself. I believe it uses the xdelta
algorithm and when you add a new file it just creates the delta
against an empty file. The structure of the revision files in a fsfs
repository is explained here:

http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure

One section of the file is the "representations". This is where the
file DELTA would be stored. I believe the representations are the only
part of the revision file where additional "compression" might then be
applied (using zlib or lz4). So the representation is always somewhat
compressed in that it is a DELTA and then it can optionally be
additionally compressed using zlib or lz4. The revision file contains
other housekeeping and indexing data that is not compressed.

Of course if you are storing this on ZFS with compression enabled then
the entire file is just compressed.

Mark

Reply via email to