= What's in CVS? = X.Org now uses CVS only for the rare ongoing maintenance of the X11``R6.x monolithic tree. The X11``R7.x modular source repositories are now maintained in git, as described on GitPage. = CVS Access = <> Read access to the CVS repository is open to everybody. You can access the X.Org CVS via anonymous CVS: {{{ $ cvs -d :pserver:anoncvs@anoncvs.freedesktop.org:/cvs/xorg login CVS password: $ cvs -d :pserver:anoncvs@anoncvs.freedesktop.org:/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:username@cvs.freedesktop.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@`. == CVSWeb == You can also browse CVS with [[http://webcvs.freedesktop.org/xorg/|ViewCVS]]. == CVS documentation == A comprehensive open documentation on CVS is Per Cederquist's [[http://www.cvshome.org/docs/manual/|manual]]. Chances are that you have it installed on your system as GNU info page. Simply do {{{ info cvs }}} to read it. If this manual is too brief for you you may want to check Karl Fogel's book which is also available [[http://cvsbook.red-bean.com/|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 [[http://xorg.freedesktop.org/scripts/prepare-ChangeLog.pl|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). * Edit `ChangeLog`: * 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 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.