[Zope] object versioning

Jim Fulton jim@digicool.com
Mon, 05 Apr 1999 08:49:52 -0400


"Jordan B. Baker" wrote:
> 
> Since there are Versions,

The "Versions" in Zope are working versions of Zope
databases. (They used to be called "sessions" but we changed the name
becaise the term "session" has a different meaning in web applications.)
They allow changes to be made to a Zope system and seen by those working
on the system without affecting other users (as long as other users
aren't trying to modify the same objects being modified in the
version). 

> does that mean we'll be able to keep multiple
> version of an object around?

Yes, but not the way you think.

Independent of "Versions", the database keeps old versions of
objects around for some period of time to support undo and a 
limited form of time travel.
 
> Also perhaps even name/describe these changes so that you could switch
> between these revisions.

Under what circumstances would you switch between versions?

Could you describe some realistic scenarious that
describe what you'd like to be able to do?

In the current system, we don't describe versions
of individual objects, but we *do* retain meta-data about
transactions, which may involve multiple objects.  IMO, 
this is a major improvement over RCS/CVS which *really* only
operate on files and have this fairly weak notion (tags) for
describing higher-level work.
 
> This would be like RCS/CVS for Zope.

For simple objects, like files, images, and documents
it could be.

The versioning in the zope database is organized around
transactions, *not* objects.  You can undo (or in the case
of "Versions" commit) transactions which may involve changes
to many objects, not just one.  This is necessary because 
undoing (or commiting) changes to just one objects may cause
other objects to be made invalid.
 
> Anything in the works on this front?

Nothing major.  We are open to suggestions, and especially
to descriptions of problems that the current system
doesn't solve.

It appears that WebDAV will have some requirements along
these lines that we'll need to address.

Jim

--
Jim Fulton           mailto:jim@digicool.com   Python Powered!        
Technical Director   (888) 344-4332            http://www.python.org  
Digital Creations    http://www.digicool.com   http://www.zope.org    

Under US Code Title 47, Sec.227(b)(1)(C), Sec.227(a)(2)(B) This email
address may not be added to any commercial mail list with out my
permission.  Violation of my privacy with advertising or SPAM will
result in a suit for a MINIMUM of $500 damages/incident, $1500 for
repeats.