[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: FSFS format7 and compressed XML bundles

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Tue, 5 Mar 2013 13:30:28 +0000 (GMT)

Vincent Lefevre wrote:

> On 2013-03-01 14:58:10 +0000, Philip Martin wrote:
>> A server-side solution is difficult.  Suppose the client has some
>> uncompressed content U which it compresses to C and sends to the server.
>> The server can uncompress C to get U but unless the compression scheme
>> has a canonical compressed form, with no other forms allowed, the server
>> cannot avoid storing C because there is no guarantee that C can be
>> reconstructed from U.
>
> This is not specific to server side. Even on the client side, the
> reconstruction may not be always possible, e.g. if the system is
> upgraded or if NFS is used. And the compression level may need to
> be detected or provided in some way.

Hi Vincent.  I'm not sure you understood Philip's point.  His point is (correct me if I'm wrong) that Subversion's design requires that during a checkout or update, the server must reconstruct a file containing exactly the same bit pattern that the client sent when committing the file.  Compression schemes in general don't guarantee that expanding and then compressing will produce the same compressed bit pattern, even if you take care to use the same "compression level".  Therefore, the server cannot simply expand the data before storing it and then re-compress it during checkout or update, because, although the resulting compressed file would be a valid representation of the user's data, it would not satisfy Subversion's own requirement that the bit pattern be identical to what was sent by the client during the commit.

That point _is_ specific to a server-side solution.  With a client-side solution, the user's word processor may not mind if a versioning operation such as a commit (through a decompressing plug-in) followed by checkout (through a re-compressing plug-in) changes the bit pattern of the compressed file, so long as the uncompressed content that it represents is unchanged.

Of course other things can always go wrong, such as not having the right software installed (is that what you mean by "the system is upgraded"?), but that's true of all computing tasks, not specific to this one.  I don't know what you mean about using NFS.

- Julian
Received on 2013-03-05 14:31:03 CET

This is an archived mail posted to the Subversion Dev mailing list.