Hi Jerry, (in case you're wondering.. Jerry really *is* my brother..)
"JS" == Jerry Spicklemire <jerry@spicklemire.com> writes:
JS> Chris Withers wrote: >> Sounds like a cool idea, but I don't really understand what it >> does and how you use it. >> >> Could you give use some enlightenment? JS> ZCVSMixin is a sort of replacement for a standard Zope Folder JS> Object. If you want to be able to maintain an entire Zope JS> Folder (and everything in it) in CVS, use a ZCVSMixin Object JS> instead. Then, from the Manage view, you get a new tab showing JS> up that provides the interaction with CVS. That's basically right. Technically there are two parts. ZCVSMixin is a python "Product" that handles talking to CVS and importing and exporting objects. There is also a ZClass that inherits from both Folder, and ZCVSMixin to provide Folder behavior and methods while adding CVS support, hence the name Mixin. I believe you could really use the 'Mixin' to add CVS support to any subclass of ObjectManager, in a similar way. JS> What it actually does is an Export as XML on the whole JS> "folder", which then can be stored, view, checked out, checked JS> back in, and otherwise thoroughly managed and maintained JS> within CVS. For developers that are deep into Zope, and JS> familiar with CVS, this represents some potent possibilites. Well.. close! It exports and imports all the objects in the folder individually. This way I can edit one method, then 'checkin' that change with CVS. Anyone else with access to my repository can do a 'checkout' from their Zope and get all the latest versions of my objects in their zope. Think of it as the public CVS that CD uses now to publish Zope itself, but taken to the level of tracking individual zope objects contained in Zope folders. I've just been playing with it.. and you can sorta get the idea looking at: http://cvs.spvi.com/cgi-bin/viewcvs.cgi/zopeObjs/testCVS/ With CVS you can tag revisions etc and take a snapshot in time of your zope objects, just like we do now with source code. JS> Think about checking out a Zope Widget from a CVS on the other JS> side of the planet, importing as XML into your local Zope, JS> where it is marshalled back from its CVSish XML form into the JS> original native Zope self. Now you can tweek it to your hearts JS> content, export as XML, then check the updated version back JS> in, where it becomes part of the trackable, archived, JS> searchable CVS system. Right... that's the idea. JS> Steve, please clarify any of the concepts I've managed to JS> mangle! Hope that helps.... It's really shocking just how easy it was to do this.... makes me wonder why it hasn't been done already, and *that* makes me wonder if I'm doing something really dumb here. ;-) It seems kinda cool to me. -steve