Hello!
I'm new to JCR (still - i looked into JCR, and was on this list briefly, a
year ago, but never managed to make time to really understand things), and
trying to get my head around some of the concepts - in particular,
workspaces and versioning. I have some general, non-Jackrabbit-specific,
questions about JCR - is this a suitable place to ask them?
In a post on this list several years ago:
http://jackrabbit.510166.n4.nabble.com/JCR-workspace-usage-td510218.html
Marcel Reutegger wrote:
you can look at workspaces as local checkouts of a revision control
system.
That's a really useful metaphor, because i understand revision control
systems. However, i don't understand how the parts map on to JCR. The
workspace corresponds to a local working copy, right? So what's the
equivalent of the central repository? What are the equivalents of updating
and committing? How about branching and merging?
I see from the javadoc that there are methods checkin, checkout, and merge
- but that these are (as of JCR 2.0) on the VersionManager. That suggests
to me that if i'm going to use them, i'm also going to be getting involved
with versions. Is that the case? Are workspaces and versioning
inextricably linked? Can i use workspaces without versioning? Can i use
versioning without workspaces?
The job i'd like to use JCR for is something fairly simple. It would be
management of an e-commerce product catalog - categories, products, SKUs,
supporting media and so on. There would be a small merchandising team
editing this data. The model i have is that the repository holds the
master version of this information; when the team wants to do some work
(adding a new category of products, say), they would create a new working
copy of it, do their editing, over the course of days or weeks, and when
it was ready, fold it back into the master copy. There could be several
such bits of work in progress at once. Should i be thinking in terms of
having a workspace for the master copy, and a workspace for each bit of
work? A workspace for each bit of work with no master workspace? A single
workspace, active in multiple sessions, using versioning to separate bits
of work? Some combination of the above?
Has anything entry-level been written about how to use workspaces and/or
versioning? The spec is pretty opaque, and the javadocs, being javadocs,
don't really have a single coherent narrative.
Thanks in advance for any insights!
tom
--
Many CS algorithms become less useful when questions start getting
answered with "maybe". -- Eric Sink