Lieven Govaerts wrote:
> Two years ago it seems there was some discussion on this list
> concerning this feature, and there was even a patch submitted
> as well. Has this patch been included in a version currently
> in development? I can't find the code in the trunk, maybe some
> other branch?
That patch is probably still in the mail archives or issue tracker, but I'm
pretty sure no such code is in the repository.
> If it is not yet available, I'm willing to implement it based on
> code/documentation that's already available. But before I
> start on that project it would be nice to have developer opinions
> concerning the feasibility.
My feeling is that it is feasible. I think it would consist of approximately
the following sub-tasks:
* Invent an abstraction layer (interface) for accessing the files.
* Make libsvn_wc implement that interface.
* Make the rest of Subversion use that interface. This will probably depend on
some other sub-tasks such as:
* Make libsvn_diff work on streams.
* Provide some configuration option or user interface to enable the compression.
Points to consider are:
* I'm assuming that compression will be optional. If it were mandatory, the
implementation would be a bit simpler, perhaps not needing that abstraction
layer, but then it wouldn't be so clean or extensible, and working copies
wouldn't be compatible so the change would probably have to wait until version
2 of Subversion, and it would be slower on large files on fast disks, and so on.
* When designing the new interface, bear in mind two other desires for the text
base: to make it optional (fetched from repository instead), and to store it in
a different place outside the working copy directory. The closer your
interface comes to also supporting those options, the better.
* We'll have to decide how the choice to compress or not to compress is to be
controlled, and at what granularity. When reading the files, I suspect the
best thing is to determine the compression status of each file individually,
regardless of the granularity at which the writing of them is controlled.
* libsvn_wc is regarded as rather messy at the moment, which makes tasks like
this more difficult than they should be. Make sure that your changes to it
make it cleaner, not messier.
This is not a simple task but if you tackle it in stages, discussing each stage
here on this mailing list, it should be possible. The work should be done and
reviewed and committed as a series of functional stages, too, not as one big
patch that implements the whole thing, as that change would be too complex.
I would like to see this feature become reality so thank you for working on it.
How would you like to start?
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Mon Sep 5 17:06:39 2005