[Zope] document versions

Michel Pelletier michel@digicool.com
Mon, 13 Mar 2000 15:08:00 -0800


jessica lee tishmack wrote:
> 
> I know that Zope has the capabality to keep up some sort of version
> managament system for zope documents.  I have two questions concerning
> this.  One, where might I find some more info concerning this.  And two,
> what if I want to use my fav editor - say vi or pico...but that's another
> war I don't want to start ;)...instead of the window that zope provides.
> IF the file already exists in zope, and then I go and make changes in a
> separate editor, and upload the file, since I am uploading the file, will
> zope keep track of this as just another version of the same file?  Thanks.

A lot of this is actually a question of terminology.  It is true that
Zope keeps previous revisions of objects around.  This is how you can
'undo' them.  However, this is somewhat unrelated to a Zope 'Version'. 
In the case of multiple revisions of an object, we call them revisions,
not versions.

A 'Version' is an object that you can join or leave.  When you join it,
you are given a 'private view' of your entire managment session.  Any
changes you make will not be shown on the 'public view'.  You can leave
a version and rejoin it.  You can commit a version or discard it.  That
pretty much sums it up.

You do not need to use Versions to get the benefit of previous revisions
and undo, Zope does this for you out of the box.

Your question about editors is related to all this.  You can
edit/add/delete object through HTTP using the managment interface, you
can also use HTTP POST and GET methods directly, WebDAV, or XML-RPC. 
All of these methods are based on HTTP (some editors work directly with
HTTP, or use a protocol transported over HTTP like WebDAV).  You can
also use FTP.  Any changes you make with any of these protocols will
cause a new revision of an object to be written, meaning that they can
all be 'undone'.

FTP however does not work with Zope 'Versions'.  You cannot use FTP to
upload information in a Version that you have joined because FTP has no
join/leave/commit/discard semantics.

-Michel