[Zope-dev] ZCVS Mixin class... feedback sought.

Steve Spicklemire steve@spvi.com
Thu, 25 May 2000 05:34:48 -0500 (EST)


Hi Jonothan,

Thanks for the thoughts....

>>>>> "Jonothan" == Jonothan Farr <jfarr@real.com> writes:

    >> Good questions!
    >> 
    >> You can just go to the 'admin' tab and type 'diff'.  The admin
    >> tab lets you execute just about any cvs command with
    >> arguments.... stat, rtag etc etc.....

    Jonothan> Doing a diff on a zexp file isn't going to be very
    Jonothan> helpful, though. Any thoughts on integrating some sort
    Jonothan> of xml diff tool?

Not as bad as you might think...

http://cvs.spvi.com/cgi-bin/viewcvs.cgi/zopeObjs/testCVS/foobie.xml.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h

having said that .... and xml diff tool would be cool as well. I
know little/nothing about what's out there. The other problem
is that Zope appears to choose id values for pickles embedded
in these xml files that are essentially random. I don't know
enough about the implementation (time to look?) to know why
they choose the ids they choose... but it would be nice for
this reason if they were always, (usually), consistent. You
also get things like this:

http://cvs.spvi.com/cgi-bin/viewcvs.cgi/zopeObjs/testCVS/foo.xml.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h

    >>  Conflicts.. uh... bad news. ;-) I think it's essentially
    >> impossible to 'merge' two different versions of a zope
    >> object... so my plan would be to pick one version, or the
    >> other.
    >> 

I forgot to mention that you have all the power of CVS to handle
the notion of 'watching' and 'editing'. I'm not a cvs expert..
but I think there are some cvs features that can help here...

    >> Login and logout are handled when you set up the directory on
    >> the filesystem. Basically you need to 'checkout' a module
    >> (maybe an empty module) into a directory on the filesystem
    >> before you can use it to keep the xml representations of your
    >> Zope objects. That checkout, might, or might not, require a
    >> login, depending on your CVSROOT. You must 'be' the zope user
    >> (the same user that the zope process runs as) when you checkout
    >> the module, so that zope can manage the contents.

    Jonothan> So essentially all checkins are by the same cvs user, so
    Jonothan> you lose the ability to track accountability? I'd like
    Jonothan> to see something that was on a per-user basis, maybe
    Jonothan> tied to the zope user, maybe not.

No.. that's not quite right. CVS has several ways to handle
the concept of 'ownership'. If you are using pserver authentication
for example, you can be user x, but authenticate with cvs as 
user y. So, to make this work Joe would have his branch and
mary could have her branch in different ZCVSMixin folders within
the same zope instance. However, for development I think it's
probably not uncommon that individual zope developers might have
their own zope instance. With a ZCVS Mixin folder they could
work on completely seprarate instances and still stay 'synced',
much the same way developers use cvs to stay synced with 'c'
code now.

    Jonothan> There's been a ton of talk about a zope cvs
    Jonothan> product. I've been thinking about giving it a shot for a
    Jonothan> while now. I'm excited to see someone actually doing
    Jonothan> something about it. I'd be glad to help out however I
    Jonothan> can. Especially since now you've taken the killer
    Jonothan> name. ;)

I haven't heard much of the talk, since I have been too busy
to keep up with the list, but I am interested in ideas. Also..
I'm 72% sure that someone else can come up with a much better
name! ;-)

thanks,
-steve

    Jonothan> --jfarr