Today, I deployed RevisionManager (and its sibling, RevisionObjects) into a Zope development site. RevisionManager seems to be the least obtrusive yet most (generally) effective CVS front end to come along for Zope.
RevisionManager aims for the notion that most Zope objects that you want to excite source control over in fact tend to have a single text (or binary, in the case of files and images) based representation. It also deals with Zope's generic Properties data description and extension system.
For general usage, a RevisionManager can be added and set up for a site root. It's a unique object, and doesn't interfere with any other content unless you tell it to - it doesn't add extra tabs, etc. If you do want an extra tab to do checkins/updates/diffs/etc per item, RevisionObjects patches in to give you that ability. But most of a site can be managed via the RevisionManager object.
RevisionManager's implementation is pretty intelligent and fairly well done. I found one problem today that I reported to the author (basically - if you have a Zope object, such as a folder, called 'read', the synchronization process will fail). But overall, RevisionManager seems to take to heart a lot of the concepts espoused in Zope 3's philosophy:
ZopeMag Issue 5 features a free article discusses the design considerations for RevisionManager, offers insight into how it works, and compares it to other (older) solutions for Zope.