On Mon, Mar 1, 2010 at 19:31, Davide Maestroni
<davide.maestr...@gmail.com> wrote:
> In my repository I have a vesionable root node with a few child nodes, each
> containing a lot of files (let's say more than 200). I set the VERSION rule
> for each child of the root node, which are in turn versionable nodes, while
> the file nodes are of type 'nt:file'.

Versioning entire "folders" with many files might not be efficient.
What is your use case?

> The problem is that each time I create a new version of the root, all the
> files are copied even if not changed. That may take minutes, which is simply
> not acceptable.

Yes, everything is copied in Jackrabbit. There is no optimization in
the version storage format (eg. using diffs), because unlike in
revision control systems, it is quite likely that versions get
deleted, so they are kept independent. Also it is optimized for trees
with fine-granular content (eg. a page in a CMS), not for arbitrary
sized subfolders with lots of binary content.

> In my understanding of what written in JCR specs there is actually no way of
> stopping the versioning at one (or any specific number) level of depth, and
> even if I set a rule in the child nodes, so to ignore any further level, the
> VERSION rule is applied to whole root subtree.

Have you used OnParentVersion (OPV) with a value of IGNORE?

See 3.13.9 ff of the JCR 2.0 spec for more:
http://www.day.com/specs/jcr/2.0/3_Repository_Model.html#VersionableState

Or this tutorial:
http://jtoee.com/jsr-170/the_jcr_primer/5/

CND docs:
http://jackrabbit.apache.org/node-type-notation.html

Regards,
Alex

-- 
Alexander Klimetschek
alexander.klimetsc...@day.com

Reply via email to