Introduction to CVS

From Project Apollo - NASSP
Jump to navigation Jump to search
NASSP has moved version control over to GitHub. More information can be found here.

This introduction tries to provide step-by-step instructions to the Project Apollo CVS repository at SourceForge. It's no comprehensive introduction to CVS or SourceForge. For further informations please use the following links:

Latest Downloads
Latest NASSP 8.0 beta

The link opens the GitHub download page.

We recommend TortoiseCVS as client, so first of all please download and install it. You will also find some instructions especially for SourceForge in the TortoiseCVS help. We also recommend to take the time to read the "Using TortoiseCVS with SourceForge" chapter and the "Using Pageant to avoid having to enter the SSH password every time" chapter in the help file and to use Pageant.

You need a SourceForge login to be able to commit your changes to SourceForge and you have to be added as a developer to Project Apollo by a project administrator. So please make a login for yourself and post an informal request with your login (UNIX name) included that you wants to be added at the Project Apollo forum.

If you use CVS the first time you can practice the basic CVS operations with the test module (named "test"). Do the checkout as explained below, but use "test" as module. You'll get some test files you can change as you like to get familiar with CVS.

Initial Checkout

After installing please do the following steps to build your "development enviroment" for Project Apollo:

  • Make a new, empty folder on your local harddisc, you can choose the location and the name of the new folder as you like, in the following it is assumed that the folder is "C:\ProjectApollo".
  • Right-click the new folder in your Windows Explorer and choose CVS Checkout... from the context menu.
  • Enter the following settings in the "Checkout Module" window:
    • Protocol: Secure Shell (:ext:)
    • Server:
    • Repository folder: /cvsroot/nassp
    • User name: <YourUNIXName>
    • Module: projectApollo

      After that your CVSROOT should look like this:

  • Press "OK". TortoiseCVS downloads now the current version of the Project Apollo files to your computer. Since the download consists of about 240 MB in more than 1.900 files (as of November 2006), this will take some time ...
  • After the checkout install Orbiter in your folder, that means in the example above the path of Orbiter is "C:\ProjectApollo\orbiter.exe". This includes the following files at the moment:

    Orbiter 2010-P1 Edition (

      You can install every other Planetary extension package, too.

      OrbiterSound 3.5 (
    • OrbiterSound35.exe

      Orbiter and OrbiterSound should not overwrite any of the CVS files.

  • You will find the Project Apollo solution file for Microsoft Visual Studio 2005/2008/2010 in the "ProjectApollo" source folder ("C:\ProjectApollo\Orbitersdk\samples\ProjectApollo\ProjectApollo2005/2008/2010.sln"). All available projects are included in this solution, rebuild all projects to get all necessary modules.
  • Since there are no modules in the repository first you have to compile the sources (or install them from the file release). The projects should have a clean debug and release configuration, please try if you can work with them WITHOUT changing them and please report problems to an administrator or at the forum, we'll try to help you as soon as possible.
  • Start Orbiter, go to the "Parameters" tab and make sure that at least Complex flight model, Limited fuel and Gravity-gradient torque are enabled. If you're using a Virtual AGC scenario, also enable Nonspherical gravity sources.
  • That all, now you can try if Orbiter and Project Apollo is working. You'll find the proper scenarios in the "Project Apollo - NASSP" scenario folder and subfolders.

Update your local files

To get the changes of the other users you don't have to do the checkout again (in fact you must not) but you have to use the "CVS Update" feature:

Choose the "CVS Update" menu item from the Tortoise context menu for each folder below "C:\ProjectApollo", i.e. "Config", "Doc", "Html" etc. CVS will download the changed files and merge the changes into your local copies.

If you receive an update of a file you are editing at the moment it can happen that merging is not possible and you get a "confict". If you have problems resolving the confict please contact a project administrator for assistants, this is always a difficult situation.

Edit a file

To change a file you first have to do a "CVS Edit" with the file (by choosing "CVS Edit" in the Tortoise context menu). After that the file is no longer read only and the CVS server knows that you are editing the file. You can check which files are edited by other users (or by yourself) with the "Show edited files..." in the Tortoise context menu.

Alternatively you can just overwrite the read-only file, but then CVS won't be able to tell other users that you're editing the same file as they are.

Add a file

To add a file just save it at the appropriate location at first. CVS doesn't know it yet and so it is marked with a small question mark icon. To add the file you have to do a "CVS Add" with the file (by choosing "CVS Add..." in the Tortoise context menu and then pressing "OK" in the next dialog).

Delete a file

To add the file you have to do a "CVS Remove" with the file (by choosing "Remove" in the Tortoise context menu). The local file is removed (moved to the Windows Recyle Bin), but the change isn't committed yet. You need to do a "CVS Commit" with the directory, which contained the file (right-click on the folder to get the CVS context menu), to remove it from the CVS server (which has a "Recyle Bin", too, so nothing gets lost).

Commit your changes

When you finished changing one or many files you can commit them (upload and save them) to the CVS repository by choosing the "CVS Commit..." context menu item. Also you can choose "CVS Commit..." for a directory (and need to in case of removed files) to commit all changes in this directory and all subdirectories. Please provide a useful comment in the commit window. If the committed files are source code files, your comment will be added to the revision history at the top of the files.

If you don't want to commit your changes (and undo it) please choose "CVS Unedit" instead.

Comments and remarks

  • There is no NEP support at the moment so please do NOT install NEP in your development folder (and of course no other add-on).
  • Do NOT rename or delete any folder name or CVS will go mad. Do NOT move or copy directories. Be very careful when you add a directory to the repository because you cannot delete it.
  • There are lot's of .cvsignore files so CVS should ignore Orbiter files and the VC++ files created during build, we hope everthing works fine but there could be bugs of course.
  • If you have problems or need help please mail to an administrator, an other developer or post in the Project Apollo forum and we will help you to solve your problem.

Backing up CVS

It is possible to make a local backup of the whole CVS tree, but it's currently around a gigabyte of data since it includes all the file history. This isn't generally useful, but it may be handy in case there's ever a server crash which wipes out the original files or requires they are reverted to an old version.

First download and install cwRsync:

Second, add it to your path (C:\Program Files\cwRsync\bin) and run a command prompt.

Finally, cd to the directory where you want to make the backup and run:

rsync -avz* .

That will download the entire CVS tree to that directory, including all the history. The first time you run rsync this will take quite a while as it has to download all the files, but if you run it again later it will only have to download changed files, which generally only takes a few seconds on a broadband connection.