[Zope-CMF] Historical revisions in CMF (was Re: CMF newbie questions)

Dieter Maurer dieter@handshake.de
Sat, 29 Mar 2003 01:29:53 +0100


Florent Guillaume wrote at 2003-3-27 15:00 +0100:
 > ....
 > I'm wary of using ZODB-level versionning to provide user-level or
 > application-level versionning. In practice we have found it doesn't
 > work. It prevents one from packing the database as you want to minimize
 > space,

This can be tackled (--> Directory Storage; HCFileStorage).

 > and it doesn't give you any flexibility in how versions are
 > handled.

What do you need beyond controlling their lifetime?


I will implement "edition"s for HCFileStorage.

  The base concept it an object "HistoryReference" that
  references an object (identified by an "oid") at a given
  time (identified by "serial"). Packing will not release
  records when they are directly or indirectly referenced
  by a "HistoryReference".
  This will make packing more expensive. I expect a 50 % increase
  in time and memory.

  An edition is a collection of "HistoryReferences", effectively
  freezing the state of objects referenced from the edition
  at a given time. The "HistoryReference" mechanism protects
  this state against packing.



Dieter