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

Re: Optional | Compressed text-base storage

From: Dylan Leigh <dleigh_at_cs.rmit.edu.au>
Date: 2005-06-23 09:03:48 CEST

On Mon, Jun 20, 2005 at 01:15:50PM -0400, Frank Gruman wrote:
> I agree with Olivier here. I hold files of several differnt types
> serving many different needs in my repositories. Some of them are small
> code chunks while others are large documents (we use Subversion to
> control documentation as well). I wouldn't mind having the ability to
> control the compression (or lack thereof) on files from the repository
> side. And the user never has to know.
>
> That said, just like other file/folder properties, I think this
> functionality should be allowable at both the server and the client
> side. If the repository is set for compression, but the user does not
> want their local files compressed (local system performance degradation
> if the files are compressed), then they should be allowed to set this in
> the local config file. But it should also be configurable by file type.
>

Looking over the posts here, the solution which would probably please
everyone is to have a "wcstorage" property, which can then be
overridden by a config file entry (so users who don't want the feature
can turn it off for all their copies), which in turn is overridden by
an element in the .svn directory itself.

On the other hand, I'd much rather get compression working and stable
on the client end first without touching any server code or . Also, I agree
with Scott Palmer's post that a master

> And yet another thing to consider here - what program is the compression
> done with? So this whole project could become a full subsection of the
> config file. Something like:
>
> [compression]
> what_state_am_I_in = <on|off>
> method = <what types can we use on *NIX, Win9x, Win2k,Win2003, Mic, etc>
> which_files = <*, .txt, .dpr, .exe, .c, etc>
>

Zlib is my suggestion to do the actual compression; its portable,
unencumbered and has reasonable performance. It's also required by
neon so many svn installations have it.

The config setting would have a set of simple rules to apply to each
file when added, imported, checked out etc; something like:

[text-base-storage]
   # local files don't get stored in the working copy
   send-full = url: file*

   # files from server foo don't get stored and are redownloaded on an
   # operation that requires diffing (and deleted afterwards)
   refetch = url: svn+ssh://foo.net/*

   # all text files or large files compressed
   compressed = mime: text/* | size-greater: 1M

   # all stored uncompressed - default
   uncompressed = all

This would set an element in the .svn/entries for each file called
"text-base-storage" (or similar) as "compressed", "uncompressed",
"refetch", "send-full", "rsync", etc. The client would then use this
information to manage the working copy files.

-- 
Dylan Leigh - http://yallara.cs.rmit.edu.au/~dleigh/

  • application/pgp-signature attachment: stored
Received on Thu Jun 23 09:06:10 2005

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