Cmiss CVS Overview

Setup

See [Setting Up for CMISS CVS Access] for CMISS-specific settings.

Help

Use cvs h for a list of cvs subcommands, cvs -H subcommand for help on a subcommand, or cvs --help-options for help on global cvs options, or check the documentation.

cvs checkout

This command gets you started with cvs. Before you can do much with cvs you need to `checkout' a working directory. The working directory is made in the current directory and is given the same name as the repository unless specified with the -d option. Go where you want the base of your working directory to be and checkout the things you want to edit.

Examples

If you have created a working directory by checking out a subset of files (i.e. you have specified files not a directory), then you can check out and release more files with cvs update described below.

The documentation on cvs checkout describes further options.

cvs update

This command gets your checked out code up to date. It will automatically merge anyone elses changes to the repository into your code. It is guaranteed to preserve anything you have done. You start cvs update at any point in a checked out tree and it will recursively descend through any cvs controlled sub directories too.

Many suffixes are ignored (all *.o *~ files etc. are ignored). Every other file is compared to the repository. If nothing has changed locally or in the repository it is passed over silently. In each other case a symbol is used to explain the status/changes.

Example

esu48:blackett 1582% cvs update
cvs update: Updating .
M cmgui.c
M cmgui.imake
? date.h
? yesterday
? cmgui_sgi.make
? object
? cmgui.imake.perl
? cmgui_sgiperl.depend
? cmgui_sgi_memorycheck.make
? cmgui_sgiperl.make
? cmgui_sgi_memorycheck.depend.tmp
? object.list
? cmgui_sgioptimised.make
? cmgui_sgif90.make
? cmgui_linux.make
? unemap_sgi.make
? cmgui_linux_optimised.make
? unemap_linux.make
cvs update: Updating comfile
M comfile/comfile_window.c
cvs update: Updating command
M command/cmiss.c
M command/cmiss.h
M command/parser.c
? command/cmiss_modify_new.c
A command/f90_interpreter.h
A command/f90_interpreter.c
? command/Perl_cmiss.pmh
? command/Perl_cmiss
? command/perl_interpreter.h
cvs update: Updating finite_element
cvs update: Updating general
M general/child_process.c
M general/image_utilities.c
? general/image_utilities.c.new
cvs update: Updating graphics
M graphics/import_graphics_object.c
M graphics/import_graphics_object.h
M graphics/texture.c
? graphics/scene_viewer.c.conflict
cvs update: Updating link
cvs update: Updating mirage
? mirage/tracking_socket_linux_test_log
? mirage/tracking_socket_linux_test
? mirage/tracking_socket_test.c
? mirage/tracking_socket_test_log
? mirage/tracking_socket_test
cvs update: Updating slider
cvs update: Updating user_interface
M user_interface/filedir.c
M user_interface/message.c

The -n option for cvs prevents cvs from modifying any files. cvs -n update shows what a cvs update would do, and is therefore useful for giving the status of the working directory.

If an entire working directory has been checked out (i.e. a directory has been specified for cvs checkout), cvs update will check out any new files that have been added to the repository.

If only a subset of files have been checked out into the working directory, additional files may be checked out using cvs update file. If you no longer want a file in your working directory it can be released using cvs update -r 0 file. This command updates the revision of file in your working directory to revision 0. Revision 0 does not exist so it removes file from your working directory. If you have made changes to file, it will not be deleted and a conflict will be reported.

The documentation on cvs update describes further options.

cvs log

This command tells you about changes that have been made to the repository.

The -d option allows you to list changes between a range of dates. (D1 < D2 for all changes between a range of dates, D for latest since a certain date). CVS understands lots of date formats including yesterday, "last week",

Examples

The documentation on cvs log describes further options.

Making changes

When committing changes to files, provide a log message that describes the change and why it was made.

If you don't supply a message with your commit, cvs will start an editor for you to write and save a log message before exiting. cvs looks for an editor in the environment variables CVSEDITOR then EDITOR. If you don't like using vi, then make sure you set one of these variables to your favourite editor.