 ==========================================================================

 README for CVSFolder (CVSFolder classes for Zope)
 README Version 0.2.7

#
# Original Author
# Steve Spicklemire
# Silicon Prairie Ventures Inc. (SPVI)
#
# Significant Contributions by Shane Hathaway, Digital Creations Inc.
#
# Portions (Copyright (C) 2001, Mikael BERTHE, Alcove)
#
# Really Significant Contributions by Marius Gedminas
# 
# Disclaimer
#   
#   THIS SOFTWARE IS PROVIDED BY SPVI ``AS IS'' AND ANY EXPRESSED OR
#   IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
#   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
#   DISCLAIMED.  IN NO EVENT SHALL SPVI OR ITS CONTRIBUTORS BE LIABLE FOR
#   ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
#   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
#   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
#   IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#   
# 
# 

 ==========================================================================

0.2.7

Marius Gedminas has very generously contributed a number of patches, including color
coded diffs and improved pipe handling, and a spiffy new icon. Thanks Marius! 

0.2.6

Incorporated various changes, including patches from Itai Tavor. Reinstalled the code that "cleans
up XML on output", but made it an administrative option. This should make it easier to merge simple
objects with traditional tools. 

0.2.5

Documentation/License update. Also.. sync CVS rev tag and actual version 
number. 

0.2.0

Thanks to Mikael BERTHE ZCVSMixin can handle whole trees (recursively).
I've changed the name of the project to ZCVSFolder, since that's how it's
really used, and it's now on sourceforge!

0.2.0

ZCVSMixin can handle whole trees (recursively)

0.1.5

Fixed a bug in the checkin code that prevented comments
from being correctly include in the log files... 

0.1.4

Fixed a bug in 'checkout' where explicitly checked files were not
exclusively checked out, and similiar problem in 'checkin'. Now, if
you click on an object's checkbox, it will be saved to disk *now*
and then (possibly) checked in. If it's fsmtime turns out to be
greater than the zope object's time, it will be reloaded after
checkin (so that CVS modified objects can be reloaded into Zope.)

0.1.3

Added lots of code to be able to track ZClass methods. Fixed some
bugs. Works with Zope 2.2.

0.1.1

Shane Hathaway from DC contributed some great patches that make it possible
to 'drop' a 'CVS Folder' into any container and give it cvs control. Shane
alse made some great UI suggestions, which I've attempted to implement.

0.1.0 

Completely re-worked user interface.. and use 'cvs status' to get more
info....

0.0.9

Got rid of cvsAdminForm in ZClass to simplify updates... 

0.0.8

Cleaned up logic, and update detection.. using real files now since Zope 
didn't seem to like popen2...

0.0.7

Made Mixin ever smarter about modification times.

0.0.6

Cleaned up internal logic.

0.0.5

fixed acquistion bug....

0.0.4

Made the logic of checkin and checkout cleaner. Paid more
attention to modtimes.. etc.

0.0.3

Update... added the ability to handle all the non-folder objects
in a zope folder at once...


0.0.2

It's been too frustrating to try to carry on 'real' projects with
Zope, but having no handle on 'real' version control. The Zope 'version'
objects are great.. but they don't really work with bug tracking and
project management.

The idea of a CVSMixin is to allow most Zope objects to be manageable
using CVS. Really this is just a set of methods that allow ZClasses
that subclass from ZCVSMixin to be built that keep stuff in CVS in
*addition* to ZODB.

You need to set up your CVS area and repository *before* you start
managing objects in Zope. 

----------------------------------------------------------------------

Instructions:  

Before you begin, you need to set up a cvs repository 
somewhere. This is described pretty well in the cvs
reference: http://www.loria.fr/cgi-bin/molli/wilma.cgi/doc.847210383.html
After that is done.... and you set your CVSROOT environment
variable to match that repository, you can setup your
module for zope objects...

Basically you must first become the same user that runs
as the zope process. If this is a totally new project you
will need to create a module in cvs. I usually do this
with 'cvs import'..  like this:

mkdir foo
cd foo

cvs import -m "start new project" zopeObjs/foo steve start

No conflicts created by this import

Now, go to the place on your filesystem where you want
to keep your 'live' zope objects. This might be called
your active workspace.

I might do it like this:

mkdir workspace
cd workspace
cvs co zopeObjs/foo
cvs checkout: Updating zopeObjs/foo

cd zopeObjs/foo
pwd
/usr/home/steve/workspace/zopeObjs/foo


You can then create a CVSFolder with 

'/usr/home/steve/workspace/zopeObjs' as the "File System Root"

and 

/foo

as the "File System Repository".

You can force ZCVSMixin to look for a .cvspass file (for pserver
authentication) using the 'Password File' input in the CVS admin page.

You can checkin/checkout/add using the CVS admin page.

There is also a generic 'cvsadmin' input form.

Good Luck!
-steve




