This document is meant to be a guideline for the acceptable programming and design of embedded systems for SSEL.
What is CVS?
CVS is a version control system. Using it, you can record the history of your source files.
For example, bugs sometimes creep in when software is modified, and you might not detect the bug until a long time after you make the modification. With CVS, you can easily retrieve old versions to see exactly which change caused the bug. This can sometimes be a big help.
You could of course save every version of every file you have ever created. This would however waste an enormous amount of disk space. CVS stores all the versions of a file in a single file in a clever way that only stores the differences between versions.
CVS also helps you if you are part of a group of people working on the same project. It is all too easy to overwrite each others' changes unless you are extremely careful. Some editors, like GNU Emacs, try to make sure that the same file is never modified by two people at the same time. Unfortunately, if someone is using another editor, that safeguard will not work. CVS solves this problem by insulating the different developers from each other. Every developer works in his own directory, and CVS merges the work when each developer is done.
What is CVS for?
CVS maintains a history of a source tree, in terms of a series of changes. It stamps each change with the time it was made and the user name of the person who made it. Usually, the person provides a bit of text describing why they made the change as well. Given that information, CVS can help developers answer questions like:
Who made a given change?
When did they make it?
Why did they make it?
What other changes did they make at the same time?
Why does SSEL use CVS?
The answer is contained in the above explanations, basicially we need to know who, why, and what
was changed in a source file.
Maia CVS
As of yet I haven't played with CVS on a windows platform (but I know is possible)
Each session of code editing
Assuming that you are working on io.ssel.montana.edu
%> cvs checkout maia (this will populate a directory with code)
do your work change whatever needs to be changed
new files/directories must be added with %> cvs add [filename]
%> cvs commit maia (commits your changes to CVS and requires comments)
%> cvs release -d maia (deletes the checked out code so you don't forget to recheckout next time)