What's in CVS?
X.Org now uses CVS only for the rare ongoing maintenance of the X11R6.x monolithic tree. The X11R7.x modular source repositories are now maintained in git, as described on GitPage.
Read access to the CVS repository is open to everybody. You can access the X.Org CVS via anonymous CVS:
$ cvs -d :pserver:firstname.lastname@example.org:/cvs/xorg login CVS password: <hit return> $ cvs -d :pserver:email@example.com:/cvs/xorg co -P app data doc driver font lib proto util xserver
If you have ssh access to freedesktop.org (which you need for write access to the repository), use :ext:firstname.lastname@example.org:/cvs/xorg. You also may need to set the environment variable CVS_RSH to ssh. On modern versions of CVS, the :ext: is optional; if your username is the same as your login on the host machine, you may also eliminate username@.
You can also browse CVS with ViewCVS.
A comprehensive open documentation on CVS is Per Cederquist's manual. Chances are that you have it installed on your system as GNU info page. Simply do
to read it. If this manual is too brief for you you may want to check Karl Fogel's book which is also available on line.
What you should do when you commit code
Before committing code to CVS you should update the ChangeLog file in the root directory to reflect the changes you have made.
- Merge in changes that have taken place after you have updated your checked out version of the tree.
cvs update -dP
Run the Perl script prepare-ChangeLog.pl in the root directory of the project. This will obtain a list of files that have changed and add it to the top of the ChangeLog file. It will also add a time stamp and your email address (if set properly).
- If somebody reviewed your patches and his name and email address.
- If you are committing a huge number of files (i.e. when you merge code between branches) you may delete the list of files you are committing.
- Add a description of the changes you have made. If there is a bugzilla entry for the code you are committing add the ID.
Check if any other ChangeLog entries in the tree have been touched (accidentally) by prepare-ChangeLog.pl. In some cases drivers have their own ChangeLogs. Also 'foreign' projects stored in the extras/ directory may have ChangeLog files. While you may describe changes to drivers in their respective files you should never add anything to ChangeLog files under extras/. Please remove those changes before you commit and move the list of changed files to the to ChangeLog file.
When you are done editing ChangeLog you may start the commit.
CVS will start an editor for you so that you can add an entry to the CVS log. It is a good idea to copy the text that you have added to the ChangeLog file here.