Checkout a Module From the Repository

Now that you successfully defined your repository location, and imported the initial files to the repository, it is time to retrieve the module from the CVS repository, creating your working copy.

You should also know the name of the branch or tag you want to use.

Branches of a module are parallel versions of this module. A good real-life example of the use of this feature is the release of a software project. After a major release, there are bugs in the code that should be fixed, but people want to add new features to the application too. It is very hard to do both at the same time because new features usually introduce new bugs, making it hard to track down the old ones. To solve this dilemma, CVS lets you create a parallel version, that we will call the stable release branch, where you can only add bugfixes, leaving the main branch (HEAD) open for adding new features.

Tags are used to mark a version of a project. CVS stamps one version of each file with the tag, so when you checkout or update to a specific tag, you will get always the same file versions. Therefore, in opposition to branches, tags are not dynamic: you cannot develop a tag. Tags are useful to mark releases, big changes in the code, etc. Using tags, you can easily return the project to a previous state, to reproduce and track bugs, generate the release code again, etc.

Figure 2.3. A screenshot of Cervisia's checkout dialog

A screenshot of Cervisia's checkout dialog

Repository:

The name of the CVS repository, also known as $CVSROOT. The drop down box shows a list of the repositories you previously entered using the Configure Access to Repositories dialog box. If the repository is remote, make sure that authentication works. See the section called “Accessing The Repository” for more information.

Module:

The name of the module to be checked out. If you are working with an existing repository, you can probably get this name from the system administrator; or, if it is an open-source repository, you can get the module names from the project web pages. If you want to create a new module from scratch using a local repository, just create a new folder in the local repository root folder. The name of the folder will be the same as the name of the empty module.

Alternatively, if the repository has a $CVSROOT/modules file, you can retrieve a list of available modules by pressing the Fetch List button.

Note that it is possible to checkout any existing subfolder of the module, without retrieving the rest of the module. Just enter the path to the subfolder as well.

Branch tag:

The name of the branch or tag you want to check out. If you leave this field empty, Cervisia will retrieve the main (HEAD) branch.

Working folder:

The folder under which the module should be checked out. Note that the working copy toplevel folder is named after the module you are retrieving, unless you give it an alternative name in the Check out as: field.

Check out as:

This results in the working copy files being checked out to an alternative folder under the working folder rather than a folder named after the module.

Export only

If you check this box, the files will be exported rather than checked out. Exporting obtains a copy of the source for the module without the CVS administrative folders. For example, export may be used to prepare the source code for a release.

Recursive checkout

Checkout all files and folders recursively.