I'm working on project where the implementation of some kind of repository for various types of documents is necessary. The main features to implement for this repository are: - version control: - history - reviewing - undoing changes - rolling back to any revision - immediate (read only) acces to every revision - files locking
... I've checked OFSP and it's Version support... nice idea but unfortunately I'll need to create a private sesion for each accesed document... it does't looks like solution rather like workaround. Also the project seems a bit abandoned (vide http://dev.zope.org/Wikis/DevSite/Projects/ZopeVersionControl/CurrentStatus). The concept of my project is closer to CVS like system than to one presented in OFSP.
...
Is there a way to implement such thing in easier way than writing the support for using ZODB transtactions in project from scratch?
The OFS 'Version' is really a (possibly soon-to-be-reomved) site-admin tool. As you noticed, they won't help you much in your search for revision control. The Zope community seems to have decided that it's best to pursue revision control outside the ZODB, which makes sense to me. The ZopeVersionControl project does this, and while I don't know how useful it is on its own, it forms the backbone of a real revision-control system in the form of CMFStaging. Since you're in the realm of content management, you really need to head on over to the CMF world. Add CMFStaging to CMF and you've got most or all of the above requirements covered. For a more polished and complete distribution/implementation of the Content Management Framework, there's Plone, which will probably ship CMFStaging in the next release. And although you don't seem so keen on CVS, there's even an (unfinished) CVS-backed versioning for CMFStaging in the Collective. Links! http://cmf.zope.org http://cvs.zope.org/CMF/CMFStaging http://plone.org http://sourceforge.net/projects/collective --jcc