Info on JMRI:
Development tools
Code Structure
Functional Info
Techniques and Standards
How To
Background Info

JMRI: CVS FAQ

This is a list of Frequently Asked Questions for CVS, particularly regarding how we use it with JMRI.

See also the Technical index for more information on maintaining JMRI code.

How do I get a copy of CVS?

Many computers come with CVS installed, including Linux and MacOS X. If you're using Windows, you will need to install a CVS "client" program like WinCVS. A recent version can be downloaded from: http://prdownloads.sourceforge.net/cvsgui/WinCvs120.zip.

How can I get my own copy of the JMRI code?

To get a copy of the source for your own use, you can use "anonymous checkout". For a command line cvs client, make a new directory for the project, change to it, and tell CVS you exist with
cvs -d:pserver:anonymous@jmri.cvs.sourceforge.net:/cvsroot/jmri login
This "login" line is only needed once; after that, it is remembered on your local machine. You may be asked for a password. If so, just hit return, as the empty password will be accepted. You can then get a copy of the code with
cvs -d:pserver:anonymous@jmri.cvs.sourceforge.net:/cvsroot/jmri co all

If you're using a GUI-based client like WinCVS, pull down the "admin" menu and select "command line" to get a place to type these commands. On other computers, you can type them directly on the command line.

For more information, see the page on getting your own copy of the source code.

What are those lines like $Revision: 1.4 $ and $Id: CVSFAQ.shtml,v 1.4 2008/03/09 20:27:28 jacobsen Exp $?

Those are automatically updated by CVS every time a new version of the file is checked-in to the repository. Please don't edit them!!! If you contribute your changes to the project, those line have to be intact in the contributed file.

How do I update an existing copy of the source to the current version?

As the common code changes, you might want to update your copy to contain the lastest version. To do that, use:
cvs -q update
Any changes will be merged into the files on your disk, and you should then be up-to-date with your own changes still present.

The "-q" option removes a lot of informational messages as CVS enters the various directories in the project; the command still works if you omit it, but it will be harder to see any real error messages.

What are these messages about .DS_Store files?

If you're using MacOS X, CVS may give you messages about ".DS_Store" files. These are used to keep track of window layouts, etc. To suppress these messages, just create a file in your home directory called ".cvsignore" and add a line of ".DS_Store" to it (no quotes). CVS will then ignore all .DS_Store files in all of your checked-out directory trees.

What is the convention for tag names?

Typically, three types of tag names are used:
  1. "Release-1-5-4" - the tag defining a specific released version of the code. These are created during the release builds, and should not be changed.
  2. "Release-1-5-4-branch" - this is the branch-tag defining a "patch branch" for a specific release. This is the only use we make of CVS branches; please note that we do not use branches for normal development.
  3. "rgj20050603a" - of the form "initials" "date" "some letter", these can be used by individual developers to keep track of what they're doing. All we ask is that you start a tag with your initials.