This is a list of Frequently Asked Questions for CVS, particularly regarding how we use it with JMRI.
Note: JMRI code is not maintained in CVS any more. To get the current code, please see the help pages on Accessing the code via the Git repository.
See also the Technical index for more information on maintaining JMRI code.
cvs -d:pserver:anonymous@jmri.cvs.sourceforge.net:/cvsroot/jmri loginThis "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.
cvs -d:pserver:anonymous@jmri.cvs.sourceforge.net:/cvsroot/jmri -q update -dAThe "-q" option suppresses a lot of routine messages. The "-d" option is needed to tell CVS to also bring in new directories. The "-A" option, here combined with "-d", means you want the most recent contents.
cvs -d:pserver:anonymous@jmri.cvs.sourceforge.net:/cvsroot/jmri -q co -rRelease-2-1-5In this example, "Release-2-1-5" is the tag for the 2.1.5 release. You can adjust that as needed. If you already have a release checked out and want to update it to a specific release, change the "co" command to "update -d"
cvs -q updateAny 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.
Similarly, auxilary information is kept in separate "lib", "xml", "resources", "jython", etc. directories.
Finally, there's a bunch of information that's not part of the application development areas, including the "scripts" directory of tools for building releases, the website, and others.
We store all these separately in CVS so that you can check out just the ones you need.
To simplify checking out a development tree, we provide a CVS module named "all". This checks out the necessary directories and puts them in the required places for a straight-forward build.
But sometimes the file needs to remain, but we don't want it to be modified any more. For example, an older schema or DTD file needs to remain around so that older references to it continue to work, but we don't want somebody accidentally modifying the older version instead of the current version of the file.
In cases like that, we use the "cvs watch on" option to effectively lock the file. The checked-out version of the file is write-protected so you can't edit it without noticing the problem, and changes can't be checked back into CVS unless the file watch is turned off.