Chapter 10. Submitting your code with CVS

Abstract

How to submit code with CVS access.

Proper testing before submitting code

Please be sure to perform thorough tests before submitting any code to CVS. Here is some good advice for proper testing:

  • Thoroughly check that your change works as intended.
  • Test your changes with the latest code from CVS. Something may have changed in the latest code that either breaks your change or causes your change to break something else.
  • Make sure that ReactOS can still boot and that any applications or systems that may be affected by your change still run properly.

Adding a directory to the CVS repository

cvs add directory
An example would be:
C:\>cd\ros\reactos\subsys
C:\ROS\REACTOS\SUBSYS>cvs add win32k
You must add a directory to the CVS repository before you can add anything in it to the repository.

Adding files to the CVS repository

cvs add file
Examples:
C:\>cd\ros\reactos\subsys\win32k\ntuser
C:\ROS\REACTOS\SUBSYS\WIN32K\NTUSER>cvs add guicheck.c
C:\ROS\REACTOS\SUBSYS\WIN32K\NTUSER>cvs add msgqueue.c message.c
C:\ROS\REACTOS\SUBSYS\WIN32K\NTUSER>cvs add *.c

Once you have added the file information, you must you the CVS commit command to actually copy the files to the repository.

Committing changes to the repository

The CVS commit command is used to upload your changes to the repository, including new files and changed files. Lets say that you want to add all new files and update all the files you changed in reactos\subsys\win32k:

C:\>cd\ros\reactos\subsys\win32k
C:\ROS\REACTOS\SUBSYS\WIN32K>cvs commit -m "Commit message"
CVS will then commit any new and changed files in win32k's directory and subdirectories to the repository. You'll notice that the -m switch is used to denote a commit message. This should be a short, overall description of what the commit is about. It will be stored in the CVS repository next to the version of the file committed and appear in the ros-commit mailing list. All changes to the ReactOS CVS repository are mailed to a subscription list, ros-commit.