Using CVS for PHP Development

All PHP development is done through a distributed revision control system called CVS. This helps us track changes and it makes it possible for people located in all corners of the world to collaborate on a project without having to worry about stepping on each others' toes.

Please note that you do not need a CVS account to access the CVS tree. See cvs.php.net for details. You only need your own CVS account if you will be regularly committing things to the CVS tree.

And once again since people just don't seem to understand this point:

Does Not Require CVS Account  Requires CVS Account
Learning PHP  Coding PHP source in C
Coding in PHP  Creating approved modules in the PHP tree
Reading PHP source   
Learning coding PHP source in C   
Using PHP modules   
Creating experimental PHP modules   
One-time patch contributions   
Adding notes to documentation  Authoring PHP documentation
Writing web pages with PHP  Authoring www.php.net web pages

If you are contributing a patch, a small fix, or another minor change you are not required to obtain a CVS account before submitting it. If you are subscribed to php-dev@lists.php.net, you can simply post your patch and request for it to be added to PHP. Submitting patches to the PHP-dev list before requesting full CVS access is suggested, so the PHP development team can develop a working relationship with you and your code. It is suggested that all PHP developers subscribe to this list.

Ok, if you are still reading, I assume you may actually need a CVS account. If you are not previously known to the PHP Development Team, then this is not an automatic process. Your best bet is to send mail to group@php.net and explain what you have in mind and perhaps give a bit of background on yourself. If you were told by a PHP developer to come here and fill out this form, you can skip sending the email to group@php.net.

If, you have already established yourself in the above manner you can submit a CVS account request here: (only the encrypted version of the password is sent) In the purpose field, put a couple of words describing what you want to work on. This is mostly to jog our memories and allow us to match the account request with whatever previous correspondence that may taken place.

Please note:
You do NOT need a CVS account to study PHP. You do NOT need a CVS account to learn PHP, to use PHP or to in any way do anything at all with PHP. If you are sitting there wondering if you need a CVS account, then you don't!

Full Name:
Email:
Purpose:
User ID:
Requested Password:
By checking this box you ensure having read all comments above
 
'); ?>

Thank you. Your request has been sent.

PLEASE, read our comments about applying for CVS accounts.

INCOMPLETE FORM. GO BACK AND RESUBMIT.

The CVS account, once granted and activated, gives you access to a number of things. First, and most important it gives you access to modify the PHP CVS tree. It also allows you to comment on and close bugs in the PHP bugs interface as well as modifying the documentation notes in the annotated manual. The relevant links for these three things are:

If you are not familiar with CVS, you should have a look at the various documentation resources available at CVShome.org. This is also where to get the most recent version of the CVS client.

All CVS commit messages get sent to the php-cvs mailing list. You should subscribe yourself to this mailing list. Instructions for subscribing are on the Support page.

CVS itself is quite easy to use. Follow the steps listed on the anonymous CVS page for checking out your tree. Substitute your own user name and password for the cvsread/phpfi combination listed there. You will not be able to do this until you receive confirmation of your account having been created.

Next, once you have your CVS tree you need to know the following commands. They should all be executed from within the checked out tree. eg. cd php4

cvs update -dP
This fetches all updates made by others and brings your tree up to date. Before starting to edit anything in the tree you should do this. Generally you would do this whenever you see a CVS commit message on the php-dev mailing list.
cvs commit
This commits any changes you have made anywhere in the tree. A text editor will pop up and you will need to describe the changes you made. Please provide a good description here as it may help people in the future when looking at your code changes.

It would probably be a good idea to put the following in your ~/.cvsrc file:

diff -u
cvs -z4
update -d -P
checkout -P

Your CVS account also translates into a foo@php.net email address where foo is your CVS user id.