The version control as such shouldn't really be a problem, as long as you don't actually modify the files (essentially using git as a backup system). But modifying the files needs rather deep understanding of what is going on, so I wouldn't recommend it.

I'm not sure whether anyone has written a Jackrabbit PM which stores the files as-is. I know that Priha (www.priha.org) has one. But if you just do backup, then the actual physical structure shouldn't matter anyway.

/Janne

On Feb 26, 2010, at 20:18 , Premkumar Stephen wrote:

Hi Alex,

Can there be a persistence manager that generally does not need to be
optimized but could persist just the tree structure as shown on the API
side?
I am not sure what this is being optimized on, but I could choose to not
optimize on space, etc.
In that case, would reads get slower?

I agree, there should not be external entities changing the files while it
is running.
We shut down our app ( which internally shuts down jackrabbit) and then do
our version control.

Could you help me get started with the implementation of such a persistence,
or is this too deep and complicated for a newbie?

Regards,
Prem


On Fri, Feb 26, 2010 at 12:10 PM, Alexander Klimetschek <[email protected] >wrote:

On Fri, Feb 26, 2010 at 13:02, Premkumar Stephen <[email protected]> wrote:
We are using the jackrabbit repository (which comes pre-built into a
Business Rules solution - http://www.jboss.org/drools/drools-guvnor.html
)

Now, as a standard, we use git to store these files.

Which files? The files beneath the repository home directory? What
persistence manager do you use?

However, because of the way jackrabbit stores them, it becomes impossible
to
do operations such as diffs, merges, etc.

For those assets that are versioned, can they each be in their own file,
so
that git can take care of changes to them?

IIUC and you want to store the repository files (whatever persistence
manager and data store you are using) so that you can version them,
this is generally not possible. Jackrabbit's persistence architecture
is optimized and doesn't necessarily represent the tree structure seen
on the JCR API side. Also, it is not advisable to change those files
while Jackrabbit is running.

However, JCR has versioning built-in, so you can use that for
versioning purposes. Note that actual diff/merge tools are not
included in the JCR API (since it's too app and file format specific).

Regards,
Alex

--
Alexander Klimetschek
[email protected]


Reply via email to