jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tobias Bocanegra" <tobias.bocane...@day.com>
Subject Re: JSR170 for Source code Version control system
Date Tue, 08 Aug 2006 09:30:19 GMT
what you would do is to create a the 'changeset' nodes seperately, and
every version has a reference to the changeset. eg:

[Changeset] > mix:referenceable
- id (long) mandatory

[File] > nt:file, mix:versionable
- changeset (reference) < Changeset

so, when comitting, you create a new Changeset node (somewhere), udate
the reference properties to all the files, and checkin the nodes.

for restore, you get the relevant versions by
changeset.getReferences() and you can restore the nodes.

regards, toby
On 8/8/06, Piyush Purang <ppurang@gmail.com> wrote:
> Hi Nicolas,
>
> > Well you could define a property for a Global Revision Number with each
> > commit.
>
> Just having a simple global revision number will not do. We will need
> a datastructure like this
>
> grn -> versions of nodes different from last increment to grn (global
> revision number)
>
> 1 -> /a(1)
> 2 -> /a/b(1)
> 3 -> /a(2)
> 4 -> /a/b/c(1)
> 5 -> /a/b(2)
>
> so revision 5 is /a(2), /a/b(2) and /a/b/c(1)  and you can see how
> fast the GRN will be touching big numbers. We will need a mechanism of
> grouping check-ins.
>
> > Can you please elaborate on your change sets ideas: I am working on the
> > backup tool.
>
> in the cases above the changesets are the differences introduced by a
> new check-in i.e. changesets are similar to the patches you have been
> submitting for implementing the backup functionality.
>
> initial checkin -> first change set (contains all the content as we
> are starting from nothing)
> next checkin -> second change set (contains only the differences
> introduced by the new check-in)
>
> and so on..
>
> The idea then is that you back up just the changeset and not the
> entire content.
>
> Restore starts with taking the initial changeset and applying the
> changesets to the point which we need. To enhance performance one
> could maintain a structure like this
>
> changeset-init (naming isn't that important you could start with cs-0)
> changeset-2
> changeset-3
> changeset-4
> changeset-5
> mergedsets-init-5
> changeset-6
>
> so as to come to the state reperesented by changeset-6 you'd pickup
> mergedset-init-5 and apply changeset-6.  Cool would be - to arrive at
> a restore till changeset-4 you remove(subtract) changeset-5 from
> mergedsets-init-5 instead of compiling from the begining.
>
> I hope I was lucid enough. Maybe you are already doing that with your
> backup tool. I haven't followed the discussions too closely.
>
> Piyush
>
>
> On 8/7/06, Nicolas <ntoper@gmail.com> wrote:
> > Hi Piyush,
> >
> >
> > Can you please elaborate on your change sets ideas: I am working on the
> > backup tool. The first version is nearly over and I am gathering feedback
> > and comment to lay out spec for a second version.
> >
> > Nicolas
> >
> > On 8/7/06, Piyush Purang <ppurang@gmail.com> wrote:
> > >
> > > Hi Toby,
> > >
> > > Subversion uses Global Revision Numbers but Jackrabbit supports a
> > > version for each versionable item so isn't there a mismatch?
> > >
> > > What I'd really like to see is some way of building and exporting
> > > "change sets" that would make backup and restore of content easy.
> > >
> > > Cheers
> > > Piyush
> > >
> > >
> > >
> > > On 8/7/06, Tobias Bocanegra <tobias.bocanegra@day.com> wrote:
> > > > On 8/7/06, Hariharasudhan.D Dhakshinamoorthy <hariharasudhan.d@gmail.com>
> > > wrote:
> > > > > Hi !
> > > > > iam not sure if this is the right place for this , iam planning to
> > > write the
> > > > > JSR170 api for CVS , how can jackrabit help me
> > > > >
> > > > > any tips / suggestions will be appreciated
> > > > >
> > > > >
> > > > >
> > > > > thanks
> > > > > haris :-)
> > > >
> > > > i would write a webdav server for subversion that uses a jsr170 repo
> > > > for storing the data....that would be cool!
> > > >
> > > > regards, toby
> > > >
> > > >
> > > > --
> > > > -----------------------------------------< tobias.bocanegra@day.com
>---
> > > > Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
> > > > T +41 61 226 98 98, F +41 61 226 98 97
> > > > -----------------------------------------------< http://www.day.com
>---
> > > >
> > >
> >
> >
> >
> > --
> > a+
> > Nico
> > my blog! http://www.deviant-abstraction.net !!
> >
> >
>


-- 
-----------------------------------------< tobias.bocanegra@day.com >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---

Mime
View raw message