What should Zope source code control look like? The ZODB's versioning is too fine-grained, because every little change is stored as a separate version. What you really want is to draw a circle around a given set of DTML + SQL queries + other objects, and store them as a snapshot. (ExternalMethods are tricky, because they're in source files outside the ZODB.)
Vague speculation, at least for CVS support: imagine having a 'CVS checkin' tab on a folder. Clicking it would loop over the contents of the folder, exporting each object in the XML format and writing it to some preconfigured CVS working directory. After writing the files, a standard 'cvs commit' is done. That's terribly crude, and running 'cvs diff' will require reading XML to interpret the changes, but it's a start.
Ooooh.. I think these two paragraphs are a neat idea. Maybe instead of a folder what if you had a drop-in object called a CVS_Container. The CVS_Container would contain the IDs of some number of Zope objects. Visiting the CVS_Container would let you add/edit/delete elements in the Container and/or check-in/out/update. I think a folder would often be too "large" to correlate nicely into CVS. Thoughts? --Rob