[ Last modified by on Feb. 26, 2000, 2:57pm EDT            ]
[ Edited by Jaime Kikpole and Greg Ross                    ]

How to gain access to TWIG's CVS Server:
----------------------------------------

For more information about CVS in general, please visit www.cyclic.com.

Currently there are several CVS tree's for twig:

   twig          - The TWIG 1.0 development tree
   twig2         - The TWIG 2.0 development tree

There are also several aliases for these:

   twig1         - alias for twig
   twig-devel    - alias for twig2 (may change as new versions are released)
   twig-current  - alias for twig2 (may change as new versions are released)

There are two access methods for these tree's, either anonymous access 
(read only) or user based access.

	Anonymous username: anonymous
	Anonymous password: <blank>

If you wish to contribute to TWIG's development you will need a username to
access the CVS tree.  CVS accounts will only be given to those individuals who
have contributed to the twig-devel's mailing list and have shown the core
developers that they share the common vision of the developers.

The rest of this document will take you through the basic step of using CVS on
a unix system.  CVS does not require unix and if you are using another
platform please go to www.cyclic.com for more information about using CVS.

This document explains, in brief, how to use the CVS server for TWIG.  It
assumes that you have basic Unix skills and have access to a UNIX shell.  All
examples will have an example shell prompt of "$ " and will be only for the
TWIG CVS server.

IMPORTANT:  All example commands are executed from the same directory!  This
            is especially important when you use the update and commit
            commands.



Set Up Your CVS Path:
---------------------

To set up your shell account to run CVS more easily, make an environment
variable called CVSROOT that is set to:

    :pserver:anonymous@cvs.twig.screwdriver.net:/usr/local/devel

If you are using bash, the command is:

export CVSROOT=:pserver:anonymous@cvs.twig.screwdriver.net:/usr/local/devel

For the specifics of what command to place in what file, see your shell's
man and info pages.  If you can not find the directions, or don't want to
make CVS easier to use, simply add
"-d :pserver:anonymous@cvs.twig.screwdriver.net:/usr/local/devel" after the
"cvs" in each of the following examples.

If you have been assigned an account, replace all references to "anonymous"
with your account's name.



Login To The CVS Server:
------------------------

$ cvs login

After that command, it will ask for a password.  Simply press return if you
are using the anonymous account.  If you have been assigned an account, use
that account's password.

This command creates the file "~/.cvspass".  You should not try to edit this
file.  No "logout" command is necessary, as CVS does not leave open network
connections.



Grab The Latest Source Code:
----------------------------

$ cvs checkout twig2

This creates the directories "CVS" and "twig2" in your current directory.
It might be helpful to make sure that you cd into a directory that your
web server serves, first.  Just make sure that this command does not
over-write your public copy of TWIG.  If you follow this suggestion,
you'll be able to test your changes to TWIG by serving them through your
web server.

At this point you can edit any file in the twig directory.  Do not modify
the contents of the CVS directory.  There are no time limits on your
working copy of TWIG.  When you are ready to send your changes back to
the CVS server (so that other people can see them), you can continue
to the next section.



Update Your Copy With The Changes Since You Began:
--------------------------------------------------

Go back to the directory that you were in when you preformed the "checkout"
command.  This is *very* important.  Then do this:

$ cvs update twig2

CVS will prompt you for assistance if it can not resolve your new changes with
the changes that other people have sent in while you were working on your
copy of TWIG.  Chances are that you'll seldom need to do this.



Send In Your Changes:
---------------------

This part requires that you have a login other than "anonymous".  If you don't,
you might want to use the "diff -c" command (see "man diff") and send a patch
file to the twig-devel@screwdriver.net mailing list, instead.

IMPORTANT:  You *must* execute this command from the directory which you
            originally used the "checkout" command!

$ ls
CHANGELOG                       config
COPYING                         features
CREDITS                         goto.php3
CVS                             images
INSTALL                         index.php3
README                          misc
README.pgsql                    test.php3
Setup-Apache-PHP-IMAP-TWIG.txt  twig-install
TODO                            twig.table.mysql
attachment.php3                 twig.table.pgsql
$ cd ..
$ ls
CVS     twig2
$ cvs commit -m "Some aesthetic changes and fixed a bug on sending mail" twig2

Replace the words in the quotation marks with a brief description of what you
changed.  CVS will then send your changes back to the server and make all
of the appropriate entries in all of the appropriate CVS log files.  This
includes a certain amount of revision control, too.  (If you don't know
what revision control is, don't worry about it.  CVS will handle it
automatically.)

You're Done!  Now Bask In The Warm-Fuzzy Glow Of Contributing To TWIG!  :)



Review:
-------

Here is a quick review of the commands that you will need to enter.  Note that
it assumes that you are using the bash shell and have not configured your
~/.bash_profile file.  Change the first line appropriately if you do not use
bash.  Omit it if you've added that line to your ~/.bash_profile file.

$ export CVSROOT=:pserver:anonymous@cvs.twig.screwdriver.net:/usr/local/devel
$ cvs login
[answer questions]
$ cvs checkout twig2
[modify the files in the new twig directory]
$ cvs update twig2
$ cvs commit -m "Blah and Blah were changed.  Blah was fixed." twig2




Further Information:
--------------------

For read-only web access to some CVS utilities, visit "http://cvs.cdcsd.k12.ny.us/".

For more information about this document, send email to Jaime at
jkikpole@cdcsd.k12.ny.us.

For more information about TWIG, read the twig@screwdriver.net mailing list.
Subscribe by sending email to twig-subscribe@screwdriver.net.

For more information about TWIG's development or how to contribute to TWIG's
development, see the twig-devel@screwdriver.net mailing list.  Subscribe by
sending email to twig-devel-subscribe@screwdriver.net.

